STL——Vector模板类常见函数

由于经常在做题中遇到,所以记录下:

#include<vector>//包含头文件

建立Vector

 vector<int> test;//建立一个vector

 

1、获取vector里的元素个数

int len = vec.size();

2、向vector添加元素

int temp;

vec.push_back(temp);//尾插

//vector<int>vec 第一个数是 vec.front();  最后一个数是vec.back();这里和迭代器遍历不一样,这里返回数字,那里是个指针 

3、初始化vector,有五种方式

vector<int>vec;   //初始化为空

vector<int>vec(v1);  //用另一个vector来初始化,即构造一个副本

vector<int>vec(n, i); //大小为n,并全部初始化为元素i (常用)

vector<int>(n); //构造大小为n的容器,没有初始化里面的元素

vector<int>{1,2,3,4}; //构造大小为4,并初始化里面的各个元素

4、使用迭代器遍历容器

vector<int>::iterator it;

for(it=vec.begin();it!=vec.end();it++) 

     vec[it]=0;

或者

for(auto &i:vec)

      i = 0;

注意:关于vector的下标操作。vector的下标操作只能改变或者获取已有的元素的值,不能往vector里添加元素!

 

5、其他函数

vec.empty();    //判断是否为空,为空返回true,否则返回false;

vec.capacity(); //获取容器分配的存储空间,区别于vec,size()

vec.resize(n+m); //调整vec的大小变为n+m

vec.swap(vec2);//vec和vec2类型要相同,大小可以不同,直接交换容器内容,所有的迭代器,引用以及指针在交换后依旧有效,全都交换了一遍。

顺序容器的赋值操作:

c1 = c2删除容器 c1 的所有元素,然后将 c2 的元素复制给 c1。c1 和c2 的类型(包括容器类型和元素类型)必须相同
c1.swap(c2)交换内容:调用完该函数后,c1 中存放的是 c2 原来的元素,c2 中存放的则是 c1 原来的元素。c1 和 c2 的类型必须相同。该函数的执行速度通常要比将 c2 复制到 c1 的操作快
c.assign(b,e)重新设置 c 的元素:将迭代器 b 和 e 标记的范围内所有的元素复制到 c 中。b 和 e 必须不是指向 c 中元素的迭代器
c.assign(n,t)将容器 c 重新设置为存储 n 个值为 t 的元素

 

6、vector经常用到的一些函数功能。需加头文件 #include<algorithm>

(1)对元素排序

sort(vec.begin(),vec.end());

(2)反转容器

reverse(vec.begin(), vec.end());

(3)交换元素

swap(vec[i],vec[j]);
 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值