vector容器常用操作
1、vector构造函数
vector<t> v;//采用模板类实现,默认构造函数
vector(v.begin(),v.end());//将[begin(),end()]区间的元素拷贝给本身
vector(n,elem);//将n个elem拷贝给本身
vector(const vector &vec);//拷贝构造函数</t>
2、vector常用的赋值操作
assign(beg,end);//将【beg,end)区间的数据拷贝赋值给本身;
assign(n,elem);//将n个elem拷贝给本身
swap(vec);//将vec与本身元素互换
3.vector大小操作
size();
empty();
resize(int num);
resize(int num,elem);
capacity();//容器的容量
reserve(int len);//容量预留len个元素长度,预留位置不初始化,元素不可访问;
4、vector存取操作
at(int idx);
operator[];
front();//返回容器第一个元素
back();//返回容器最后一个元素
5、vector插入和删除
insert(const_iterator pos,int count,ele);//迭代器指向位置插入count个元素ele
push_back(ele);//尾部插入元素ele
pop_back();//删除最后一个元素
erase(const_iterator start,const_iterator end);//删除从start到end之间的元素
erase(const_iterator pos);//删除迭代器指向的元素
clear();//删除所有元素
代码如下:
#include<iostream> #include<vector> using namespace std; //vector初始化 void test01() { vector<int> v;//默认构造,空的vector容器 vector<int> v2(10, 5);//带参数构造函数 vector<int> v3(v2.begin(), v2.end()); vector<int> v4(v3);//拷贝构造 } //vector容器的大小操作 void test02() { int arr[]{6, 8, 3, 9 }; vector<int> v(arr, arr + sizeof(arr) / sizeof(int)); cout << "容量" << v.capacity() << endl; cout << "大小" << v.size() << endl; if (v.empty()) { cout<< "容器为空" << endl; } } //vector存取操作 void test03() { int arr[]{6, 8, 3, 9 }; vector<int> v(arr, arr + sizeof(arr) / sizeof(int)); try { cout << v[100] << endl; cout << v.at[100] << endl; } catch (...){ cout << "数组访问越界" << endl; } cout << v.front << endl; cout << v.back << endl; } void print(vector<int>& v) { for (vector<int>::iterator it = v.begin; it != v.end; it++) { cout << *it << " "; } } //vector容器的插入和删除 void test04() { int arr[]{6, 8, 3, 9 }; vector<int> v(arr, arr + sizeof(arr) / sizeof(int)); v.insert(v.begin(), 100);//头部插入100 v.push_back(100);//尾插法 vector<int>::iterator pStart = v.begin(); vector<int>::iterator pEnd = v.end(); while (pStart!=pEnd) { cout << *pStart << " "; pStart++; } cout << endl; //删除 int val = v.back(); cout << val << "被删除"<<endl; v.pop_back; for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " "; } cout << endl; //指定位置删除 v.erase(v.begin()); for (vector<int>::iterator it = v.begin(); it != v.end(); it++) { cout << *it << " "; } //区间删除 v.erase(v.begin(), v.end); //v.clear();全部删除 cout << "size" << v.size() << endl; } int main() { vector<int> v1;//默认构造,空的vextor容器 vector<int> v2; for (int i = 0; i < 5; i++) { v1.push_back(i); } for (int i = 6; i < 10; i++) { v2.push_back(i); } print(v1); print(v2); //v1和v2交换 v1.swap(v2); //swap小技巧 vector<int> v; v.push_back(2); v.push_back(3); v.resize(100); cout << "容量" << v.capacity() << endl; cout << "大小" << v.size() << endl; v.clear;//容量不变,大小清零 v.push_back(2); v.push_back(3); cout << "容量" << v.capacity() << endl; cout << "大小" << v.size() << endl; vector<int>(v).swap(v);//v的空间跑到对象中,使用完释放掉空间 cout << "容量" << v.capacity() << endl; cout << "大小" << v.size() << endl; return EXIT_SUCCESS; }
|