名前空間
変種
操作

std::deque::insert

提供: cppreference.com
< cpp‎ | container‎ | deque
(1)
iterator insert( iterator pos, const T& value );
(C++11以前)
iterator insert( const_iterator pos, const T& value );
(C++11およびそれ以降)
iterator insert( const_iterator pos, T&& value );
(2) (C++11およびそれ以降)
(3)
void insert( iterator pos, size_type count, const T& value );
(C++11以前)
iterator insert( const_iterator pos, size_type count, const T& value );
(C++11およびそれ以降)
(4)
template< class InputIt >
void insert( iterator pos, InputIt first, InputIt last);
(C++11以前)
template< class InputIt >
iterator insert( const_iterator pos, InputIt first, InputIt last );
(C++11およびそれ以降)
iterator insert( const_iterator pos, std::initializer_list<T> ilist );
(5) (C++11およびそれ以降)

コンテナ内の指定された位置に要素を挿入します。

1-2) pos の前に value を挿入します。
3) pos の前に value のコピーを count 個挿入します。
4) pos の前に範囲 [first, last) から要素を挿入します。
InputIt が整数型の場合、このオーバーロードはオーバーロード (3) と同じ効果を持ちます。 (C++11以前)
オーバーロード (3) との曖昧さを回避するため、このオーバーロードは、InputItInputIterator を満たす場合にのみ、オーバーロード解決に参加します。 (C++11およびそれ以降)
first および last*this 内を指す場合、動作は未定義です。
5) pos の前に初期化子リスト ilist から要素を挿入します。

すべてのイテレータ (終端イテレータも含む) が無効化されます。 pos == begin() または pos == end() の場合は、参照は無効化されません。 そうでなければ、参照も無効化されます。

目次

[編集] 引数

pos - 前に内容が挿入されるイテレータ。 posend() イテレータでも構いません
value - 挿入する要素の値
first, last - 挿入する要素の範囲。 insert が呼ばれたコンテナ内を指すイテレータは使用できません
ilist - 挿入する値の初期化子リスト
型の要件
-
オーバーロード (1) を使用するためには TCopyAssignable および CopyInsertable の要件を満たさなければなりません。
-
オーバーロード (2) を使用するためには TMoveAssignable および MoveInsertable の要件を満たさなければなりません。
-
オーバーロード (3) を使用するためには TCopyAssignable および CopyInsertable の要件を満たさなければなりません。
-
オーバーロード (4,5) を使用するためには TEmplaceConstructible の要件を満たさなければなりません。
-
オーバーロード (4,5) を使用するためには TSwappable, MoveAssignable, MoveConstructible および MoveInsertable の要件を満たさなければなりません。 (C++17およびそれ以降)

[編集] 戻り値

1-2) 挿入された value を指すイテレータ。
3) 挿入された最初の要素を指すイテレータ、または count==0 の場合は pos
4) 挿入された最初の要素を指すイテレータ、または first==last の場合は pos
5) 挿入された最初の要素を指すイテレータ、または ilist が空の場合は pos

[編集] 計算量

1-2) 定数時間プラス pos とコンテナのいずれかの端との距離の短い方の線形時間。
3) count の線形時間プラス pos とコンテナのいずれかの端との距離の短い方の線形時間。
4) std::distance(first, last) の線形時間プラス pos とコンテナのいずれかの端との距離の短い方の線形時間。
5) ilist.size() の線形時間プラス pos とコンテナのいずれかの端との距離の短い方の線形時間。

[編集] 例外

いずれかの端に単一の要素が挿入されるときに例外が投げられた場合、この関数は効果を持ちません (強い例外保証)。

[編集] 関連項目

(C++11)
要素をその場で構築します
(パブリックメンバ関数) [edit]
要素を先頭に挿入します
(パブリックメンバ関数) [edit]
要素を末尾に追加します
(パブリックメンバ関数) [edit]