std::vector::insert
提供: C++入門
スポンサーリンク
std::vector::insert とは、std::vectorに要素を追加するメンバ関数の1つです。他の方法は、std::vector::push_backです。std::vector::insertを利用して、vectorを連結することもできます。std::vector::insertは、任意のポジション(イテレータ)に要素を追加できます。
読み方
- std::vector::insert
- えすてぃーでぃー べくたー いんさーと
目次
概要
std::vectorのinsert では、以下のいずれかの動作ができます。
- 値をポジション(イテレータ)の直前に追加し、追加した要素を指すイテレータを返す。
- 値を「指定された個数」作成し、ポジションの直前に追加する。
- 開始から終了までの要素をポジションの直前に追加する。
std::vector::insertの例
先頭に要素を1つ追加する
これは、先頭に値を追加する例です。
it = v.begin(); // 先頭のイテレータを取得 it = v.insert(it,200); //先頭に200を追加
先頭に同じ要素を2つ追加する
これは、先頭に300を2つ追加する例です。
v.insert(it,2,300); // 先頭に300,300を追加
vectorを連結する
vectorを連結(結合)する例です。v1の後ろにv2を連結します。
vector<int> v1{1,2,3}, v2{4,5,6}; v1.insert(v1.end(), v2.begin(), v2.end());
vectorを連結(結合)する例です。vの前に、v2が追加されます。
vector<int> v2{503,502,501}; v.insert(v.begin(), v2.begin(), v2.end()); // 先頭にv2を追加
プロトタイプ
// single element (1) iterator insert (const_iterator position, const value_type& val); // fill (2) iterator insert (const_iterator position, size_type n, const value_type& val); // range (3) template <class InputIterator> iterator insert (const_iterator position, InputIterator first, InputIterator last); // move (4) iterator insert (const_iterator position, value_type&& val); // initializer list (5) iterator insert (const_iterator position, initializer_list<value_type> il);
vector_insert1.cpp の例
ソースコード vector_insert1.cpp
#include <iostream> #include <vector> using namespace std; int main(int argc, char const* argv[]) { vector<int> v(3, 100); // 100,100,100 vector<int>::iterator it; it = v.begin(); // 先頭のイテレータを取得 it = v.insert(it,200); //先頭に200を追加 v.insert(it,2,300); // 先頭に300,300を追加 vector<int> v2{503,502,501}; v.insert(v.begin(), v2.begin(), v2.end()); // 先頭にv2を追加 for(auto i: v) { cout << i << " "; } cout << endl; return 0; }
コンパイル
g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \ -Wl,-rpath=/usr/local/lib/gcc49 vector_insert1.cpp -o vector_insert1
実行例
% ./vector_insert1 503 502 501 300 300 200 100 100 100
vectorにvectorを連結する例
ソースコード vector_add_vector1.cpp
#include <iostream> #include <vector> using namespace std; int main(int argc, char const* argv[]) { vector<int> v1{1,2,3}, v2{4,5,6}; v1.insert(v1.end(), v2.begin(), v2.end()); for(auto i: v1) { cout << i << " "; } cout << endl; return 0; }
コンパイル
g++49 -std=c++11 -I/usr/local/lib/gcc49/include/c++/ \ -Wl,-rpath=/usr/local/lib/gcc49 vector_add_vector1.cpp -o vector_add_vector1
実行例
% ./vector_add_vector1 1 2 3 4 5 6
関連項目
ツイート
スポンサーリンク