目录
vector容器
vector容器的数据结构和数组相似,也称为单端数组。
vector与数组的区别:
数组的长度是固定的,一旦初始化后长度就固定了。而vector的长度是可变的,可以动态扩展。
什么是动态扩展?
并不是在原空间之后续接新空间,而是找到更大的内存空间,然后将原数据拷贝新空间,释放原空间。
构造函数
vector<int>v1; //默认构造
for(int i=0;i<5;i++)
{
v1.push_back(i);
}
//遍历容器
for(vector<int>::iterator it=v1.begin();it!=v1.end();it++)
{
cout<<*it<<endl;
}
vector赋值操作
vector<int>v1;
for(int i=0;i<5;i++)
{
v1.push_back(i);
}
//赋值
vector<int>v2;
v2=v1;
for(vector<int>::iterator it=v2.begin();it!=v2.end();it++)
{
cout<<*it<<endl;
}
vector<int>v3;
v3.assign(3,10); //往容器中添加3个10
for(vector<int>::iterator it=v3.begin();it!=v3.end();it++)
{
cout<<*it<<endl;
}
vector容量和大小
vector<int>v1;
for(int i=0;i<5;i++)
{
v1.push_back(i);
}
if(v1.empty()) //如果容器为空返回true
{
cout<<"容器为空"<<endl;
}
else
{
cout<<"容器不为空"<<endl;
cout<<"容器的大小:"<<v1.size()<<endl;
cout<<"容器的容量:"<<v1.capacity()<<endl;
}
vector插入和删除
vector<int>v1;
//向容器尾部插入数据
v1.push_back(01);
v1.push_back(02);
v1.push_back(03);
v1.push_back(04);
//插入
v1.insert(v1.begin(),10); //向头部插入10
//遍历
for(vector<int>::iterator it=v1.begin();it!=v1.end();it++)
{
cout<<*it<<endl;
}
//删除
v1.erase(v1.begin());//删除第一个元素
//清空
v1.clear(); //也可以使用v1.erase(v1.begin(),v1.end());
vector数据存取
vector<int>v1;
//向容器尾部插入数据
v1.push_back(01);
v1.push_back(02);
v1.push_back(03);
v1.push_back(04);
//利用[]方式访问容器中的元素
for(int i=0;i<v1.size();i++)
{
cout<<v1[i]<<endl;
}
//利用at方式访问元素
for(int i=0;i<v1.size();i++)
{
cout<<v1.at(i)<<endl;
}
//获取第一个元素
cout<<"第一个元素:"<<v1.front()<<endl;
//获取最后一个元素
cout<<"最后一个元素:"<<v1.back()<<endl;