トップページ > コンテンツ > プログラミング入門 > C++入門 > 基本まとめ > Vector型について

Vector型は動的配列である。

たくさん物を入れてソートしたい時やいくつ値が入るか分からないとき(可変)、
扱うものが数字でないときに使用すると有効である。
vector<int> test(個数)もしくはtest.resize(個数)で個数の指定ができる。

よく使う関数群
push_back() 配列の末尾に要素を追加
insert() 配列の途中に要素を追加
clear() 配列全ての要素を削除
pop_back() 配列の末尾の要素を1つ削除
erase() 指定した位置の要素を1つ削除
size() 配列の長さを得る。ただし、size_type型で返るのでキャストして使う

動的配列のうち重複したものを消去する。
vector<int> test;
vector<int>::iterator it;
std::sort(test.begin(),test.end());
vector<int>::iterator end_it = unique(test.begin(),test.end());
test.erase(end_it,test.end());
/*結果の表示*/
for(it = test.begin(); it != test.end(); it++) {
	std::cout << *it << std::endl;
}

尚、結果の表示にはfor_eachを使う方法もある。
http://homepage2.nifty.com/well/for_each.html

配列の重複を防ぐにはあらかじめ通常配列と監視用配列を用意しておいて、
int a[10] = {1,2,3,4,5,6,7,8,9,10};
bool b[10] = {true,true,true,true,true,true,true,true,true,true};
取り出したものと同じindexのb配列をfalseに変更し、
b[index]がtrueであるときのみa配列の値を取得するといったようにするのも一つの手だし、
a配列自身から一度使った値を削除するようにするのも一つの手段なのかもしれん。
他にも最初から重複を防止し、自動でソートするset型というものもある。

関連:
STLについて


最終更新:2011年04月03日 11:33