【C++】vector容器的使用

1、基本概念

vector容器和数组非常相似,在很多时候可以将其看作数组使用

与数组的区别:
1、数组时静态的,即在声明的时候请求的长度不能更改;而vector可以动态扩展,增加或者减少长度
2、数组内数据通常存储在栈上,而vector中数据存储在堆上

2、声明:

//头文件
#include <vector>

//1、默认构造函数vecotr<T> v;
vector<int> v;

//2、将v.begin()到v.end()的元素拷贝
vector<int> v1(v.begin(),v.end());

//3、将n个元素拷贝给自身(可以理解为赋初值)
vec<int> v2(10,9);//含有10个元素空间,每个元素值为9

//4、拷贝
vector<int> v3(v2);

//5、数组转vector
int a[] = {1,2,3,4,5};
vector<int> v4(&a[0],&a[5]);

3、插入和删除

//1、尾部插入元素elem
v.push_back(elem);

//2、删除最后一个元素
v.pop_back();

//3、在迭代器指向的位置iter处,插入一个元素elem
//迭代器声明方法:vecotr<int>::iterator iter;
v.insert(const_iterator iter,elem);

//4、在迭代器指向的位置iter处,插入n个元素elem
v.insert(const_iterator iter,int count,elem);

//5、删除迭代器指向的元素
v.erase(iter);

//6、删除两个迭代器之间的所有元素
v.erase(begin,end);

//7、删除所有值为num的元素
v.erase(remove(v.begin().v.end(),num),v.end());

//8、清空
v.clear();

4、数据访问

vector<int> v;
//1、获得容器长度
v.size();
//2、获得容器容量
v.capacity();
//3、判空
v.empty();

//4、下标访问
v[index];
v.at(index);

//5、第一个元素
v.front();
//6、最后一个元素
v.back();

5、统计和查找

//统计某元素出现次数
int count_num = count(v.begin(),v.end(),num);

//查询是否存在某个元素elem
//查询到返回该元素的迭代器,没有则返回v.end();
//当然也可以使用coun查询,是否大于0
vector<int>::iterator iter=find(v.begin(),v.end());

6、遍历与求和

int sum=0;
//1、下标遍历
for(int i=0;i<v.size();i++)
{
	cour<<v[i]<<" ";
	sum+=v[i];
}
	
//2、迭代器遍历
for(vector<int>::iterator iter=v.begin();iter!=v.end();iter++)
{
	cout<<*iter;
	sum+=(*iter)
}
	
//3、函数求和
int sum = accumulate(v.begin(),v.end(),0);
//第三个参数为累加初始值

7、最大最小值

//这两个函数返回的是迭代器
int min_v = *min_element(arr.begin(),arr.end());
int max_v = *max_emement(arr.begin(),arr.end());
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值