Effective STL 第一章:容器(三)
来源:互联网 发布:2016怎么找淘宝客推广 编辑:程序博客网 时间:2024/04/29 07:43
第4条:调用empty而不是检查size()是否为0
1,对于任一容器,empty和size()是否为0本质上是等价的,尤其是empty通常被实现为内联函数,并且它所做的仅仅是返回size是否为0
2,但应该使用empty形式,理由很简单,empty对所有的标准容器都是常数时间操作,而对一些list实现,size耗费线性时间(list所独有的链接(splice)操作其不同的实现可能会导致size并非常数时间操作)
3,若要保证size是常数时间操作,则list的每个成员函数都必须更新它们所操作的链表的大小(size),可是splice操作更新它所改变的链表的大小的唯一方式是计算所链接的元素的个数,这会导致splice操作变为线性时间操作,所以splice和size操作只能有一个是常数时间操作
4,不同的链表实现通过不同的方式处理splice和size操作,具体取决于选择把size还是splice实现的更为高效,所以某些链表实现的size会是线性时间操作
0 0
- Effective STL 第一章:容器(三)
- Effective stl 第一章 容器
- Effective STL 第一章:容器(一)
- Effective STL 第一章:容器(二)
- Effective STL 第一章:容器(四)
- effective STL 读书笔记——第一章:容器
- Effective STL读书笔记-第一章
- Effective STL --关联容器
- Effective STL -- 容器
- effective stl 第一部分:容器
- Effective STL第一部分: 容器
- Effective STL:第二部分 容器
- Effective STL:1 - 12 容器
- Effective STL笔记一-容器
- effective stl(容器部分总结)
- Effective stl 第一章 第7、8条
- Effective STL 第一章 第9条
- Effective stl 第一章 第10条
- Yii2有返回结果集的存储过程调用
- 售后工程师岗位是做什么的?
- Android ListActivity
- 手机连接不上eclipse或者adb启动不了
- Hosts更新助手
- Effective STL 第一章:容器(三)
- Light OJ 1287 Where to Run (状压+期望)
- Android练习题day01
- pull解析XML文件
- javascript倒计时功能
- Eclipse调试技巧
- 互联网-2互联网思维特点和理念
- 数组和链表的区别
- IBatis 怎样直接执行SQL语句