Loading... ### <p style="color:red">一、Vector的几种初始化方式</p> (1)默认初始化,vector为空。 ```cpp vector<int> Vec; ``` (2)拷贝初始化 ```cpp vector<int> Vec2(Vec); <==> vector<int> Vec2 = Vec; ``` (3)范围拷贝 ```cpp vector<int> Vec(Vec2.begin(), Vec2.begin()+3); //将Vec2[0]到Vec2[2]的元素赋给Vec ``` (4)列表初始化 ```cpp vector<int> Vec{1, 2, 3, 4}; ``` (5)指定值初始化 ```cpp Vector<int> Vec(5, 1); //Vec被初始化为包含5个1的int型数组 ``` (6)数组地址初始化 ```cpp int a[5] = {1,2,3,4,5}; vector<int> Vec(a, a+5); ``` ### <p style="color:red">二、增添元素</p> (1)向vector尾部增加一个元素 ```cpp void push_back(const t& X); ``` (2)向vector迭代器指向元素前插入一个元素 ```cpp iterator insert(iterator iter, const T& x); ``` (3)向vector迭代器指向元素前插入n个相同元素 ```cpp interator insert(iterator iter, int n, const T& x); ``` (4)向vector迭代器指向元素前插入一个向量的[first, last) ```cpp iterator insert(iterator iter, const_iterator first, const_iterator last) ``` ### <p style="color:red">三、删除元素</p> (1)删除vector中最后一个元素 ```cpp void pop_back(); ``` (3)删除vector中iter指向的元素 ```cpp iterator erase(iterator iter); ``` (2)删除vector中[first, last)元素 ```cpp iterator erase(iterator first, iterator last); ``` #### <p style="color:red">四、遍历vector</p> (1)通过下标遍历 ```cpp for(int i = 0; i < vec.size(); i++){ cout<<vec[i]<<"\t"; } ``` (2)通过迭代器遍历 ```cpp for(auto iter = vec.begin(); iter != vec.end(); iter++){ cout<<(*iter)<<"\t"; } ``` #### <p style="color:red">五、vector构造二维数组</p> ##### <p style="color:green">5.1 初始化</p> (1)使用push_back函数 ```cpp std::vector<std::vector<int> > vec; std::vector<int> v1; v1.push_back(1); v1.push_back(1); v1.push_back(1); std::vector<int> v2; v2.push_back(1); v2.push_back(1); v2.push_back(1); vec.push_back(v1); vec.push_back(v2); ``` (2)先定义好二维数组的结构,如5x3,然后再赋值 ```cpp std::vector<std::vector<int> > vec(5); for(auto iter = vec.begin(); iter != vec.end(); iter++){ iter->resize(3); } for(int i = 0; i < vec.size(); i++){ for(int j = 0; j < vec[0].size(); j++){ vec[i][j] = 1; } } ``` ##### <p style="color:green">5.2 遍历二维数组</p> (1)迭代器 ```cpp for(auto iter = vec.begin(); iter != vec.end(); iter++){ auto temp_iter = *iter; for(auto it = temp_iter.begin(); it != temp_iter.end(); it++){ cout<<*it<<"\t"; } cout<<endl; } ``` (2)下标 ```cpp for(int i = 0; i < vec.size(); i++){ for(int j = 0; j < vec[0].size(); j++){ cout<<vec[i][j]<<"\t"; } cout<<endl; } ``` Last modification:January 20th, 2021 at 05:53 pm © 允许规范转载