c++ vector容器详解,适合小白零基础

目录

1.vector容器简介

2.初始化

3.增加

4.删除

5.其它操作


1.vector容器简介

vector容器,也叫向量容器,功能与数组十分相似,可以理解成可变数组,在执行对数组的操作时效率较高。

使用vector容器时要包含头文件#include<vector>

2.初始化

(1)使用push_back依次放入值

vector<int> arr;
for(int i=0;i<5;i++)
{
	arr.push_back(i);
}
for(int i=0;i<5;i++)
{
	cout<<arr[i]<<' ';  //输出0 1 2 3 4
}

(2)使用vector(v.begin(),v.end())拷贝构造

vector<int> arr;
for(int i=0;i<5;i++)
{
	arr.push_back(i);
}

vector<int> arr1(arr.begin(),arr.end());  //拷贝构造

for(int i=0;i<5;i++)
{
	cout<<arr1[i]<<' ';  //输出0 1 2 3 4
}

(3)使用vector(n,elem)赋值构造,即n个elem元素

vector<int> arr(5,1);  //5个1
for(int i=0;i<5;i++)
{
	cout<<arr[i]<<' ';  //输出1 1 1 1 1
}

(4)使用常量初始化

vector<int> arr{1,2,3,4,5};
	
for(int i=0;i<5;i++)
{
	cout<<arr[i]<<' ';  //输出1 2 3 4 5
}

3.增加

(1)push_back 尾部插入

vector<int> arr;
for(int i=0;i<5;i++)
{
	arr.push_back(i);
}
for(int i=0;i<5;i++)
{
	cout<<arr[i]<<' ';  //输出0 1 2 3 4
}

(2)insert(pos,elem) 指定位置插入

vector<int> arr(5,1);
	
arr.insert(arr.begin(),2);  //开头插入一个2 

for(int i=0;i<6;i++)
{
	cout<<arr[i]<<' ';  //输出2 1 1 1 1 1
}

(3)insert(pos,int count,elem) 指定位置插入count个elem

vector<int> arr(5,1);
	
arr.insert(arr.begin(),3,2);  //开头插入三个2 
for(int i=0;i<8;i++)
{
	cout<<arr[i]<<' ';  //输出2 2 2 1 1 1 1 1
}

4.删除

(1)pop_back 删除最后一个元素

vector<int> arr{1,2,3,4,5};
	
arr.pop_back();  //删除尾部元素 
	
for(int i=0;i<4;i++)
{
	cout<<arr[i]<<' ';  //输出1 2 3 4
}

(2)erase(pos)  删除指定位置

vector<int> arr{1,2,3,4,5};
	
arr.erase(arr.end()-1);  //删除尾部元素 
	
for(int i=0;i<4;i++)
{
	cout<<arr[i]<<' ';  //输出1 2 3 4
}

(3)erase( begin,end)  删除begin到end间元素

vector<int> arr{1,2,3,4,5};
	
arr.erase(arr.begin(),arr.end());  //删除 
	
for(int i=0;i<arr.size();i++)
{
	cout<<arr[i]<<' ';  //输出空 
}

(4) clear()  清空所有元素

vector<int> arr{1,2,3,4,5};
	
arr.clear();  //清空
	
for(int i=0;i<arr.size();i++)
{
	cout<<arr[i]<<' ';  //输出空 
}

5.其它操作

(1)迭代器iterator,可以看成指针,一般用于遍历或寻找指定位置

vector<int> arr{1,2,3,4,5};
	
for (vector<int>::iterator it = arr.begin(); it != arr.end(); it++)
{
	cout << *it <<' ';  //输出1 2 3 4 5 
}

(2)front()和back(),返回第一个和最后一个元素

vector<int> arr{1,2,3,4,5};
	
cout<<arr.front()<<endl;  //输出1 
	
cout<<arr.back()<<endl;   //输出5

(3)size()  返回容器大小

vector<int> arr{1,2,3,4,5};
	
cout<<arr.size()<<endl;   //输出5 

(4)swap()交换两个容器

vector<int> arr1{1,2,3,4,5};
vector<int> arr2{2,4,6,8};
	
arr1.swap(arr2);  //交换
	
for(int i=0;i<arr1.size();i++)  cout<<arr1[i]<<' ';  //2 4 6 8
cout<<endl;
for(int i=0;i<arr2.size();i++)  cout<<arr2[i]<<' ';   //1 2 3 4 5

(5)empty() 判断是否为空,如果为空,返回值为1,反之为0

vector<int> arr{1,2,3,4,5};
	
cout<<arr.empty();  //输出0

  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小瑾比个耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值