顺序容器比较及使用优先级

顺序容器的类型:vector,string,deque,list,forward_list,array;

顺序容器的比较

  1. vector:可变数组大小,支持任意位置的访问,尾插元素较为容易,其他插入较慢;
  2. string:与vector相似的容器,专门用来保存字符的容器,随机访问较快,尾插较快,其他插入较慢;
  3. deque:双端队列,支持随机访问,尾部和头部的插入/删除较快
  4. list:双向链表,支持任意位置的插入,效率较高,可以双向顺序查找元素,无法随机访问;
  5. forward_list:单向链表,只可以单项顺序查找元素,插入元素较快;
  6. array:静态数组,支持随机访问,无法插入/删除元素;

顺序容器使用优先级规则

1.如何你有更好的理由选择其他容器,否则应使用vector
2.如果你的程序有很多小的元素,并且空间的额外开销很重要,不要选择forward_list和list
3.如何程序需要随机访问,应使用deque或者vector
4.如果需要随机插入较大的元素,应使用list或者forward_list
5.如果只需要在头尾位置插入/删除元素。应使用deque
6.如果程序在输入时需要插入元素,插入完毕需要访问元素
	6.1.首先,考虑是否真正需要在容器中间插入元素,通常,可以先将元素追加到vector中,在使用sort将元素重排,避免在中间位置插入元素
	6.2.如果真的需要在元素中间插入元素,考虑在输入阶段使用list,输入完成将list中的元素拷贝到vector中
注意:如果既需要随机访问元素有需要随机插入元素,应当比较插入较为频繁,还是比较较为频繁,选择相应的顺序容器

如对上文有任何自己的见解,请评论留言。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值