存取操作
插入和删除
#define _CRT_SECURE_NO_WARNINGS #include <iostream> using namespace std; #include <vector> /* vector数据存取操作 at(int idx); //返回索引idx所指的数据,如果idx越界,抛出out_of_range异常。 operator[];//返回索引idx所指的数据,越界时,运行直接报错 front();//返回容器中第一个数据元素 back();//返回容器中最后一个数据元素 vector插入和删除操作 insert(const_iterator pos, int count,ele);//迭代器指向位置pos插入count个元素ele. push_back(ele); //尾部插入元素ele pop_back();//删除最后一个元素 erase(const_iterator start, const_iterator end);//删除迭代器从start到end之间的元素 erase(const_iterator pos);//删除迭代器指向的元素 clear();//删除容器中所有元素 */ void printVector(vector<int>& v) { for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " "; } cout << endl; } void test01() { //存取操作 vector<int> v; v.push_back(10); v.push_back(20); v.push_back(30); v.push_back(40); //at和[]同string用法一样 //front cout << "v的front: " << v.front() << endl; cout << "v的back: " << v.back() << endl; //插入和删除 //插入 v.insert(v.begin()+1, 100); //参数1 迭代器 参数2 N 可不填 参数3 插入的内容 printVector(v); //10,100,20,30,40 //删除 v.pop_back(); // 弹出末尾数据 printVector(v); //10,100,20,30 v.erase(v.begin()); //删除指定位置的元素 参数为迭代器 而不是索引 printVector(v); //100,20,30 v.erase(v.begin(), v.end()-1); //删除指定迭代器从start到指定结束位置的数据 区间方式删除 printVector(v); //30 v.clear(); //清空容器内的元素 if (v.empty()) { cout << "为空" << endl; } else { cout << "不为空" << endl; } }
结果: