vectorは動的な配列。配列の要素を増やしていったとき、自動的に配列のメモリを増加してくれる。
メンバ関数で自分がとくに使うであろうものは次のとおり。
push_back() 末尾に要素を追加
pop_back() 最後の要素を削除
size() 要素数を返す
begin() 最初の要素への反復子を返す
end() 最後の要素の次の位置(末尾)への反復子を返す
insert() 指定した位置へ挿入
erase() 指定した位置から削除
clear() すべての要素を削除
反復子というのはポインタのような動作をするオブジェクト。
またvectorでは配列と同じように[]で要素にアクセスできる。
#include <iostream> #include <vector> using namespace std; int main() { vector<int> v; // 10個要素を追加 for(int i=0; i<10; i++) v.push_back(i); // 要素を表示 for(int i=0; i<v.size(); i++) cout << v[i] << " "; cout << endl; // 5個要素をとりのぞく for(int i=0; i<5; i++) v.pop_back(); // iteratorで要素表示 vector<int>::iterator p = v.begin(); while( p != v.end() ) { cout << *p << " "; p++; } cout << endl; // 指定した位置に挿入 p = v.begin(); p += 2; v.insert( p, 5, 100 ); for(int i=0; i<v.size(); i++) cout << v[i] << " "; cout << endl; // 指定した位置から削除 p = v.begin(); p += 2; v.erase( p, p+5 ); for(int i=0; i<v.size(); i++) cout << v[i] << " "; cout << endl; // すべて削除 v.clear(); cout << v.size() << endl; } 実行結果 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 0 1 100 100 100 100 100 2 3 4 0 1 2 3 4 0