vector详解

简介:

vector是一种序列式容器,事实上和数组差不多,但它比数组更优越。一般来说数组不能动态拓展,因此在程序运行的时候不是浪费内存,就是造成越界。

特点:

拥有一段连续的内存空间,并且起始地址不变,因此它能

非常好的支持随机存取(即中括号),但由于它的内存空

间是连续的,所以在中间进行插入和删除会造成内存块的

拷贝,另外,当该数组后的内存空间不够时,需要重新申

请一块足够大的内存并进行内存的拷贝。这些都大大影响

了 vector的效率。

对头部和中间进行插入删除元素操作需要移动内存,

如果你的元素是结构或类,那么移动的同时还会

进行构造和析构操作,所以性能不高。

在后面插入删除元素最快,此时一般不需要移动内存,只有保留内存不够时才需要。

声明方法:

vector<每个元素类型> 名称;
//多维声明
vector<vector<每个元素类型>> 名称;    //二维
vector<vector<vector<每个元素类型>>> 名称;    //三维
......

引用数据方法:

与数组相同,使用中括号。

各函数用法:

push_back()

插入一个元素到向量后面

insert()

插入元素到向量的指定位置

insert()

插入n个相同的元素到指定位置

insert()

将另一个向量从头指针的位置开始到尾指针的位置结束(不包括end)之间的内容插入该向量的指定位置

erase()

删除指定位置的元素

erase()

删除向量[位置1,位置2)中的元素

pop_back()

弹出(删除)向量的最后一个元素

clear()

清除向量所有元素,size()变为0

front()

取向量第一个元素

back()

取向量最后一个元素

begin()

返回向量头指针 (迭代器),指向第一个元素

end()

返回向量尾指针,指向向量最后一个元素的下一个位置

rbegin()

反向迭代器,指向最后一个元素

rend()

反向迭代器,指向第一个元素之前的位置

size()

返回向量中实际元素的个数

resize()

重新设定向量的大小,也就是可以保存元素的个

max_size()

得到 vector 最大可以是多大。

empty()

判断向量是否为空,等价于 size()为0

swap()

交换两个同类型向量的数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值