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;
}