一覧
処理 | 関数 |
---|---|
末尾への追加 | push_back |
n番目へ追加 | insert |
末尾の削除 | pop_back |
n番目の削除 | erase |
特定の値を削除 | std::erase |
末尾への要素の追加(push_back)
- 変数名.push_back(追加したい要素)で末尾に要素を追加できます。
サンプルコード:末尾に7を追加
#include<iostream> #include<vector> int main() { std::vector<int> v{ 3, 4, 2 }; //末尾に7を追加 v.push_back(7); //中身を列挙 for (int a : v) std::cout << a << ", "; }
実行結果
3, 4, 2, 7,
n番目に要素を追加(insert)
- イテレータを使うことでn番目に要素を追加できます。
- イテレータにはbegin()~end()まで指定できます。
サンプルコード1:前から1番目に-2を追加
#include <iostream> #include <vector> int main() { std::vector<int> v{ 3, 4, 2 }; v.insert(v.begin() + 1, -2); // 列挙 for (int a : v) std::cout << a << ", "; }
実行結果
3, -2, 4, 2,
サンプルコード2:後ろから1番目に7を追加
#include <iostream> #include <vector> int main() { std::vector<int> v{ 3, 4, 2 }; v.insert(v.end() - 1, 7); // 列挙 for (int a : v) std::cout << a << ", "; }
実行結果
3, 4, 7, 2,
末尾の削除(pop_back)
- 変数名.pop_back()で末尾の要素を削除できます。
サンプルコード
#include<iostream> #include<vector> int main() { std::vector<int> v{ 3, 4, 2 }; //末尾を削除 v.pop_back(); //中身を列挙 for (int a : v) std::cout << a << ", "; }
実行結果
3, 4,
n番目の要素の削除(erase)
- 指定できるイテレータはbegin()~end()-1。
- イテレータの指定の仕方で、複数の要素をまとめて削除できる
サンプルコード1:n番目の要素を削除
#include<iostream> #include<vector> int main() { std::vector<int> v{ 1, 2, 3, 4, 5, 6 }; //前から2番目の要素を削除 v.erase(v.begin() + 2); //中身を列挙 for (int a : v) std::cout << a << ", "; }
実行結果
1, 2, 4, 5, 6,
サンプルコード2:複数の要素をまとめ削除
- 今回は、先頭と末尾以外の全要素を削除します。
#include<iostream> #include<vector> int main() { std::vector<int> v{ 1, 2, 3, 4, 5, 6 }; //前から2番目の要素を削除 v.erase(v.begin() + 1, v.end() - 1); //中身を列挙 for (int a : v) std::cout << a << ", "; }
実行結果
1, 6,
指定した値を削除(std::erase)
std::erase(vector, 値)とすることでvector内の指定した値を全削除することができます。
サンプルコード:vectorから1を削除
#include<iostream> #include<vector> int main() { std::vector<int> v{ 1, 2, 1, 4, 1, 1 }; // "1"を削除 std::erase(v, 1); //中身を列挙 for (int a : v) std::cout << a << ", "; }
実行結果
2, 4,