Lists

6 篇文章 0 订阅

Lists使用一个doubly linded list(双向链表)来管理元素,决定了list的内部结构和vector与deque迥然不同,所以先在几个主要方面与前述二者存在明显的区别。

  • 根据链表的性质,list不支持随机存取,意思是如果你想存取第i位置上的元素就必须顺着链表访问到i位置。

  • 任何位置上的插入删除操作都能在常数时间内完成,毕竟无需移动任何元素只通过内部的一些指针操作即可。

  • 安插和删除动作不会导致指向其他各元素的各个pointers、references、iterators失效。

  • list对于异常有这样的处理方式:要么成功,要么什么都不发生。

  • 由于不支持随机存取,list即不提供下标操作符也不提供at()
  • list并未提供容量capacity()、空间重新分配reverse()等操作函数,因为全无必要。每个元素都有自己的内存,在被删除之间一直有效。
  • list提供了不好特殊的成员函数,专门用于移动元素。较之同名的STL通用算法, 这些函数执行起来更快,因为无需拷贝和移动,只需调整若干指针即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值