{%hackmd theme-dark %} # Vector ## STL container --- ## 什麼是STL --- ## 什麼是Vector --- ## Vector怎麼用 --- ## 標頭檔 ---- ```cpp= #include<vector> using namespace std; ``` ---- ## 宣告 (vector::vector) ---- ```cpp= vector<int> a(5); vector<double> b(7,0); vector<long long int> c; vector<int> v{1, 5, 4, 2, 3}; ``` ---- ## 存取內容物 (vector::operator[]) ---- ```cpp= vector<int> v(5, 1); v[1] = 5; v[2] += v[1]; cout << v[2] << endl; //result: 6 ``` ---- ## vector::at ---- ```cpp= vector<int> v(5, 1); v.at(1) = 5; v.at(2) += v.at(1); cout << v.at(2) << endl; ``` ---- ## vector::push_back ---- ```cpp= vector<int> v(5, 1); v.push_back(7); cout << v[5] << endl; //result: 7 ``` ---- ## vector::pop_back ---- ```cpp= vector<int> v(5, 0); v.pop_back(); cout << v[4] << endl; //result: 0 cout << v.at(4) << endl; //result: terminate called after throwing an instance of 'std::out_of_range' //what(): vector::_M_range_check: __n (which is 4) >= this->size() (which is 4) ``` ---- ## vector::size ---- ```cpp= vector<int> v(5, 0); cout << v.size() << endl; //result: 5 ``` ---- ## vector::empty --- ```cpp= vector<int> v; cout << v.empty() << endl; //result: 1 ``` --- ## vector::front ---- ```cpp= vector<int> v{1, 5, 4, 2, 3}; cout << v.front() << endl; //result: 1 ``` ---- ## vector::back ---- ```cpp= vector<int> v{1, 5, 4, 2, 3}; cout << v.back() << endl; //result: 3 ``` --- # Iterator --- ## iterator是什麼 --- ## iterator用在哪裡 --- ## 宣告 ---- ```cpp= vector<int>::iterator i; ``` --- ## 用法 ---- ## vector::begin ## vector::end ---- ```cpp= vector<int> v{1, 5, 4, 2, 3}; vector<int>::iterator i = v.begin(); while (i != v.end()) cout << *i++ << ' '; cout << endl; //result: 1 5 4 2 3 ``` ---- ## auto ---- ```cpp= vector<int> v{1, 5, 4, 2, 3}; for (auto i = v.begin();i != v.end();i++) cout << *i << ' '; cout << endl; ``` ---- ## range_based_for ---- ```cpp= vector<int> v{1, 5, 4, 2, 3}; for (auto& i : v) cout << i << ' '; cout << endl; ``` ---- ```cpp= int v[]={1, 5, 4, 2, 3}; for(auto& i : v) cout << i << ' '; cout << endl; ```
{"metaMigratedAt":"2023-06-15T05:45:57.621Z","metaMigratedFrom":"YAML","title":"Vector","breaks":true,"slideOptions":"{\"spotlight\":{\"enabled\":true}}","contributors":"[{\"id\":\"e8edfe24-eef8-448f-beff-2798a40d21cd\",\"add\":2264,\"del\":83}]"}
    294 views