vector

一,vector与array之间的区别

vector与array非常的相似,两者唯一的差别在于内存空间的使用。array是静态空间,一旦配置就不能改变;vector是动态空间,随着元素的加入,它会动态的扩充自己的内存空间。实现vector的关键技术,就是对其占用的内存空间的控制以及重新配置时元素移动效率。

 

二,vector的迭代器

vector的底层是用一段连续的内存空间来存储容器中的元素,普通的指针都可以作为vector的迭代器而满足所有的条件因为迭代器所需要的操作,例如:*、->、++、--、+、- 等,普通的指针都具备这些功能。vector支持随机存取,而普通的指针就具备这些功能,所以vector的迭代器是普通的指针。

 

三,vector的内存管理

在vector中添加元素时,如果超过了它的容量,会导致内存的重新配置。重新配置内存并不是在原来的内存的后面添加新的空间,而是以原大小的两倍配置新的内存空间,然后将原来的内容拷贝到新的内存空间,之后释放掉原来的内存空间。因此,对vector的任何操作,一旦导致内存空间的重新配置,指向原vector的所有的迭代器都将失效。

 

四,vector的基本操作

1,初始化操作

int nums[] = {1, 2, 3, 4, 5};
vector<int> vect(nums, nums + 5);

 

2,添加与获取元素

//在vector的尾部添加一个元素
vect.push_back(6);

//获取头、尾的元素
int y = vect.front();
int x = vect.back();

 

3,删除容器中的元素

//直接弹出容器尾部的元素,但是不会返回这个元素,pop_back()的返回值为void
vect.pop_back();

//删除指定位置的元素
vect.erase(vect.begin());

 

4,其他常用操作

//判断容器是否为空,如果容器中没有元素返回true,否则返回false
vect.empty();

//获取容器中元素的数目
int size = vect.size();

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值