当前位置:   article > 正文

c++之Vector容器_c++ vector 差有几个元素

c++ vector 差有几个元素

c++之Vector容器

1、vector是将元素置于一个动态数组中加以管理的容器
2、vector可以随机存取元素
vector尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时



一、vector容器介绍

vector容器是一种单向数组形式
  • 1

1、vector对象初始化

1、vetcor<int>   v1;
2、vector<int> v2=v1;
3、vector<int>v3 (v1.begin(),v1.begin()+2);
4、vector<int> vecIntC(3,9); //此代码运行后,容器vecIntC就存放3个元素,每个元素的值是9			
  • 1
  • 2
  • 3
  • 4

2、vector的尾部添加和弹出元素,及获取头部元素,尾部元素

v1.front(); //获取头部元素
v1.back(); //获取尾部元素
v1.pop_back();//删除尾部元素
v1.push_back();//从尾部往容器里面添加元素
  • 1
  • 2
  • 3
  • 4

3、案例

vector<int>  v1;
v1.push_back(1);
v1.push_back(3);
v1.push_back(5);

//查看头部元素
cout<<"查看v1容器头部元素:"<<v1.front()<<endl;
//把v1容器里面的元素挨个删除
while(v1.size()>0)
{
 cout<<"查看尾部元素:"<<v1.back()<<endl;
v1.pop_back();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

二、Vector遍历

1.数组遍历

代码如下(示例):

vector<int> v1(10); //要给v1里面赋给1个元素,要先声明10个内存空间
forint i=0;i<10;i++{
 v1[i] =i+1;
 }
 for(int i=0;i<10;i++)
 {
 cout<<v1[i]<<" ";
 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

2.迭代器遍历

1、正向遍历

代码如下(示例):

vector<int> v1(10);
for(int i=0;i<10;i++)
{
 v1[i]=i+1;
}
for(vector<int>::iterator it=v1.begin();it!=v1.end();++it)//这块的++it,也可以使用it++
{
cout<<*it<<" ";
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

这块使用前置++,原因是前置++的效率比后置++的效率低,在循环中的话效果其实是一样的

2、反向遍历

代码如下(示例):

for(vector<int>::reverse_iterator rit=v1.rbegin();rit!=v1.rend();++it)
{
  cout<<*rit<<" ";
}
  • 1
  • 2
  • 3
  • 4

3、vector删除操作

1、区间删除

V1,erase(v1.begin(),v1.begin()+2);
  • 1

2、指定元素删除

for(vector<int>::iterator it=v1.begin();i1!=v1.end())
{
if(*it == 2)//这块我们指定的是删除容器中的元素2
{
  it=v1.erase(it);
}
else
{
it++
} }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

1、vector.clear();//删除容器中所有数据
2、v1.erase(begin,end);//删除从begin到end区间的数据,返回下一个数据的位置
3、v1.erase(pos);//删除pos位置的数据,返回下一个数据的位置

4、vector插入

1、vector.insert(pos,elem);//在pos位置插入一个elem元素,返回新数据
2、vector.insert(pos,n,elem);//在pos位置插入n个elem元素,无返回
3、vector.insert(pos,begin,end);//在pos位置插入begin,end区间的数据,无返回值
  • 1
  • 2
  • 3

例如:
v1,insert(v1.begin(),100); //再头出插入元素100
v1.insert(v1.end(),200); //在尾部插入元素200

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/390814
推荐阅读
相关标签
  

闽ICP备14008679号