template <class T, class Allocator = allocator<T>> class vector
#include <vector> using namespace std; vector <T> 変数名; vector<int> x; // 空の vector vector<int> x(3); // 要素数が 3 vector<int> x(5, 10); // 5 つの要素を 10 で初期化 vector<int> x(y.it1, y.it2); // it1 から it2 の範囲で初期化 vector<int> x(y); // vector y で初期化 vector<int> x ({1, 2, 3}); // 初期化子リスト,C++11 vector<int> x {1, 2, 3}; // 初期化子リスト,C++11 vector<int> x = {1, 2, 3}; // 初期化子リスト,C++11
vector<pair<int, double>> v; v.emplace(v.begin(), 5, 3.14); v.emplace(v.begin(), make_pair(5, 3.14)); // v.insert(v.begin(),10, 1.23); // error v.insert(v.begin(), make_pair(10, 1.23)); for (auto x : v) cout << "(" << x.first << ", " << x.second << ")" << endl;
= == < <= != > >= []
#include <iostream> #include <vector> using namespace std; void print(string str, vector<int> &v) { if (v.empty()) cout << " コンテナ " << str <<" は空です\n"; else { cout << str << " の要素数: " << v.size() << endl; vector<int>::iterator it; for (it = v.begin(); it != v.end(); it++) cout << " " << *it; cout << endl; } } int main() { // 要素を最後に追加(サイズは自動的に増加) cout << "**初期設定**\n"; vector<int> v1 = {0, 1, 2, 3, 4}; print("v1", v1); // 配列と同様の参照も可能 cout << "**参照**\n"; for (int i1 = 0; i1 < 5; i1++) cout << " " << v1[i1]; // cout << " " << v1.at(i1); cout << endl; // 2 番目の要素の前に要素を追加 cout << "**2 番目の要素の前に要素を追加**\n"; vector<int>::iterator it = v1.begin(); it++; v1.insert(it, 5); print("v1", v1); // 3 番目の要素と最後の要素を削除 cout << "**3 番目の要素と最後の要素を削除**\n"; it = v1.begin(); it++; it++; v1.erase(it); v1.pop_back(); print("v1", v1); // 演算子で比較 cout << "**比較**\n"; vector<int> v2; for(int i1 = 0; i1 < 4; i1++) v2.push_back(i1); v2.at(1) = 5; // 要素 1 の値を変更 print("v2", v2); if (v1 == v2) printf(" 2 つのコンテナ内の要素はすべて等しい\n"); // v2 の最初の 3 つの要素を v1 に代入 cout << "**v2 の最初の 3 つの要素を v1 に代入**\n"; v1.assign(v2.begin(), v2.end()-1); print("v1", v1); // v1 と v2 を入れ替える cout << "**v1 と v2 を入れ替える**\n"; print("入れ替え前:v1", v1); print("入れ替え前:v2", v2); v1.swap(v2); print("v1", v1); print("v2", v2); // v1 のすべての要素を削除 cout << "**v1 のすべての要素を削除**\n"; v1.clear(); print("v1", v1); return 0; }
**初期設定** v1 の要素数: 5 0 1 2 3 4 0 1 2 3 4 **2 番目の要素の前に要素を追加** v1 の要素数: 6 0 5 1 2 3 4 **3 番目の要素と最後の要素を削除** v1 の要素数: 4 0 5 2 3 **比較** v2 の要素数: 4 0 5 2 3 2 つのコンテナ内の要素はすべて等しい **v2 の最初の 3 つの要素を v1 に代入** v1 の要素数: 3 0 5 2 **v1 と v2 を入れ替える** 入れ替え前:v1 の要素数: 3 0 5 2 入れ替え前:v2 の要素数: 4 0 5 2 3 v1 の要素数: 4 0 5 2 3 v2 の要素数: 3 0 5 2 **v1 のすべての要素を削除** コンテナ v1 は空です
菅沼ホーム | 本文目次 | 演習問題解答例 | 付録目次 | 索引 |