C/C++:标准库容器vector的用法及内存管理

      C++中的标准库容器vector是一个类模板,可以根据想装入元素的具体类型来实例化一个vector容器,vector相当于一个动态数组,当你无法知道自己需要的数组规模具体要多大时,可以用它来解决问题,而且使用很方便。

1.文件包含、变量声明

#include <vector>
#include <iostream>
int main()
{
    std::vector<int> a;
    ......
}

2.函数调用

1. push_back           在数组的最后添加一个数据
2. pop_back            去掉数组的最后一个数据 
3. at                  得到编号位置的数据
4. begin               得到数组头的指针
5. end                 得到数组的最后一个单元+1的指针
6.front               得到数组头的引用
7. back                得到数组的最后一个单元的引用
8. max_size            得到vector最大可以是多大
9. capacity            当前vector分配的大小
10.size                当前使用数据的大小
11.resize              改变当前使用数据的大小,如果它比当前使用的大,者填充默认值
12.reserve             改变当前vector所分配空间的大小
13.erase               删除指针指向的数据项
14.clear               清空当前的vector
15.rbegin              将vector反转后的开始指针返回(其实就是原来的end-1)
16.rend                将vector反转构的结束指针返回(其实就是原来的begin-1)
17.empty               判断vector是否为空
18.swap                与另一个vector交换数据

3.内存管理与效率

(1) 使用reserve()函数提前设定容量大小,避免多次容量扩充操作导致效率低下。

        STL容器最令人称赞的特性之一就是只要不超过它们的最大容量,它们就可以自动增长到足以容纳你放入的数据。(要知道这个最大值,只要调用名叫max_size的成员函数。)对于vector和string,如果需要更多空间,就以类似realloc的思想来扩充空间。vector容器支持随机访问,因此为了提高效率,它内部使用动态数组的方式实现的。在通过 reserve() 来申请特定大小的时候总是按指数边界来增大其内部缓冲区。当进行insert或push_back等增加元素的操作时

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值