「std::vector::insert」の版間の差分

提供: C++入門
移動: 案内検索
(ページの作成:「std::vector::insert とは、std::vectorに要素を追加するメンバ関数の1つです。他の方法は、std::vector::push_backです。[[std::vec...」)
 
(関連項目)
行94: 行94:
 
* [[std::vector]]
 
* [[std::vector]]
 
* [[std::vector::push_back]]
 
* [[std::vector::push_back]]
* [[std::vector::erase_back]]
+
* [[std::vector::erase]]
 
* [[auto]]
 
* [[auto]]
 
* [[C++11]]
 
* [[C++11]]
 
<!-- vim: filetype=mediawiki -->
 
<!-- vim: filetype=mediawiki -->

2013年12月28日 (土) 15:39時点における版

std::vector::insert とは、std::vectorに要素を追加するメンバ関数の1つです。他の方法は、std::vector::push_backです。std::vector::insertを利用して、vectorを連結することもできます。

読み方

std::vector::insert
えすてぃーでぃー べくたー いんさーと

概要

// 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=v1+v2;
        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

関連項目