C++のあれこれ vector編
vector内に存在するある値を全て消したい!
そんなときはeraseしてremoveしましょう。
例:
vector<int> vec; for(int i=0;i<=20;i++) vec.push_back(i); //vec内から偶数を消したい! for(int i=0;i<=20;i++) if(i%2 == 0) vec[i] = 0; vec.erase(remove(vec.begin(),vec.end(),0),vec.end());
ちなみにvector内から重複している値を消し去りたいときは
vector<int> vec; for(int i=0;i<10;i++) vec.push_back(i); for(int i=0;i<10;i++) vec.push_back(i); vec.erase(unique(vec.begin(),vec.end()),vec.end()); //これで重複を消す
みたいにします
・vectorのサイズと初期化
vectorを宣言の段階である値に初期化したいときは次のようにします
vector<int> vec(10,99);//これでvecはサイズ10で要素はすべて99で初期化されます
宣言時以外でもassignを使うことでサイズ変更と一緒に初期化をしてくれます
vector<int> vec; vec.assign(10,99) // 上の例と同じです