名前空間
変種
操作

std::list::insert

提供: cppreference.com
< cpp‎ | container‎ | list
(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 - 前に内容が挿入されるイテレータ。 posend() イテレータでも構いません
value - 挿入する要素の値
first, last - 挿入する要素の範囲。 insert が呼ばれたコンテナ内を指すイテレータは使用できません
ilist - 挿入する値の初期化子リスト
型の要件
-
オーバーロード (1) を使用するためには TCopyInsertable の要件を満たさなければなりません。
-
オーバーロード (2) を使用するためには TMoveInsertable の要件を満たさなければなりません。
-
オーバーロード (3) を使用するためには TCopyAssignable および CopyInsertable の要件を満たさなければなりません。
-
オーバーロード (4,5) を使用するためには TEmplaceConstructible の要件を満たさなければなりません。


[編集] 戻り値

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

[編集] 計算量

1-2) 一定。
3) count に比例。
4) std::distance(first, last) に比例。
5) ilist.size() に比例。

[編集] 例外

例外が投げられた場合、効果はありません (強い例外保証)。

[編集] 関連項目

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