C++算法与数据结构Vector使用指南
- C++算法与数据结构Vector使用指南
- 构造函数
- 特殊成员函数
- resize
- erase
- insert
- emplace
- 通用成员函数
- 参考
构造函数
- vector<Datatype> a;//初始化一个空vector容器
- vector<Datatype> a(n);//初始化一个大小为n,元素为0的vector容器
- vector<Datatype> a(n,s);//初始化一个大小为n,元素为s的vector容器
- //参数为另一个容器
- vector<Datatype> a(b);//初始化容器a为容器b的复制
- vector<Datatype> a(b.begin()+x,b.end()-y);//初始化容器a为容器b的指定范围
复制代码 特殊成员函数
resize
更改容器大小,无返回类型- a.resize(n);//将容器a的大小更改为n
- a.resize(n,x);//将容器大小更改为n,并且输入参数x
复制代码
- 容器原来的尺寸小于n:容器尺寸扩展,并用第二个参数的元素进行填充
- 容器原来的尺寸等于n:容器元素不变,无视其余参数
- 容器原来的尺寸大于n:容器保留前n个元素,无视其余参数
erase
删除指定位置元素,返回值为删除元素的下一个指针- a.erase(a.begin()+n);
- a.erase(a.begin()+x,a.begin()+y);
复制代码 insert
向指定位置插入元素,插入位置之后的元素需要后移,时间复杂度为O(n)- a.insert(a.begin()+n,x);//向容器指定位置插入元素x
- a.insert(a.begin()+n,number,x)//向容器指定位置插入,number个元素x
- a.insert(a.begin()+n,b.begin()+x,b.begin()+y);//向容器指定位置插入另一个容器指定范围内的元素
复制代码 emplace
与insert语法相同,但直接往指定位置添加元素,效率更高,
通用成员函数
- a.clear();//清空容器,尺寸归零
- a.push_back(x);//向容器尾部添加元素x
- a.pop_back();//弹出容器最后一个元素
复制代码 删除容器内所有指定条件的元素
- for(auto iterator=a.begin();iterator!=a.end();)
- 判断条件?iterator=a.erase(iterator):iterator++;
复制代码 删除容器内所有指定条件的元素使用数组访问法和新标准访问法时需要注意下标,可能会出现跳元素的问题,例如:
[code]for(int i=0;i |