###《Effective STL》--Chapter1
点击查看Evernote原文。
#@author: gr
#@date: 2014-09-12
#@email: forgerui@gmail.com
Chapter1 容器
Topic 4: 调用empty而不是检查size()是否为0
当检查一个容器是否为空时,要使用empty而不是size()。empty在检查时的时间总是常数的,而对于size(),一些容器的实现可能是线性的(如list)。
Topic 5: 区间成员函数优先于与之对应的单元素成员函数
使用区间成员函数会得到更高的效率,其次,在可读性方面,使用区间成员函数也比自己写循环要好看多了。
区间创建
container::container(InputIterator begin, InputIterator end);
区间插入
//序列容器
void container::insert(iterator position, InputIterator begin, InputIterator end); //关联容器
void container::insert(InputIterator begin, InputIterator end);
区间删除
//序列容器
iterator container::erase(iterator begin, iterator end); //关联容器
void container::erase(iterator begin, iterator end);
区间赋值
void container::assign(InputIterator begin, InputIterator end);
Topic 9: 慎重选择删除元素的方法
要删除容器中有特定值的所有对象
如果容器是vector,string和deque,则使用erase-remove用法。//删除vector<int>中所有值为10的元素
c.erase(remove(c.bgein(), c.end(), 10), c.end());
如果容器是
list,则使用list::remove。l.remove(l.begin(), l.end(), 10);
如果容器是一个标准关联容器,则使用它的erase成员函数。
//删除关联容器中值为10的元素
m.erase(10);
在循环内删除某些元素
序列容器使用返回值更新迭代器。while(it != con.end()){
if (it->getCount() > theshold){
it = con.erase(it);
}else{
it++;
}
}
关联容器对迭代器递增操作。
while (it != con.end()){
if (it->getCount() > threshold){
con.erase(it++);
}else{
it++;
}
}
###《Effective STL》--Chapter1的更多相关文章
- 《Effective STL》学习笔记
http://www.cnblogs.com/arthurliu/archive/2011/08/07/2108386.html 作者:咆哮的马甲 出处:http://www.cnblogs.com/ ...
- ###《Effective STL》--Chapter3
点击查看Evernote原文. #@author: gr #@date: 2014-09-13 #@email: forgerui@gmail.com Chapter3 关联容器 Topic 22: ...
- ###《Effective STL》--Chapter5
点击查看Evernote原文. #@author: gr #@date: 2014-09-17 #@email: forgerui@gmail.com Chapter5 算法 Topic 30: 确保 ...
- ###《Effective STL》--Chapter6
点击查看Evernote原文. #@author: gr #@date: 2014-09-27 #@email: forgerui@gmail.com Chapter6 函数子.函数子类.函数及其他 ...
- ###《Effective STL》--Chapter7
点击查看Evernote原文. #@author: gr #@date: 2014-08-31 #@email: forgerui@gmail.com Chapter7 在程序中使用STL Topic ...
- ###《Effective STL》--Chapter2
点击查看Evernote原文. #@author: gr #@date: 2014-09-15 #@email: forgerui@gmail.com Chapter2 vector和string T ...
- ###《Effective STL》--Chapter4
点击查看Evernote原文. #@author: gr #@date: 2014-09-14 #@email: forgerui@gmail.com Chapter4 迭代器 Topic 26: i ...
- 容器使用的12条军规——《Effective+STL中文版》试读
容器使用的12条军规——<Effective+STL中文版>试读 还 记的自己早年在学校学习c++的时候,老师根本就没有讲STL,导致了自己后来跟人说 起会C++的时候总是被鄙视, ...
- 《Effective STL中文版》前言
<Effective STL中文版>前言 我第一次写关于STL(Standard Template Library,标准模板库)的介绍是在1995 年,当时我在More Effec ...
随机推荐
- [OC Foundation框架 - 4] NSString的导出
void exportString() { NSString *str = @"Hello, 坑爹"; NSString *path = @"/Users/hello ...
- 如何使用IAR仿真环境查看CPU类型字长?
在此操作之前假设已有一个现成的cpu代码工程如:IAR for Stm8的Demo工程. 点软件仿真进入调试状态 单击菜单栏View –> Watch –> Watch 在新弹出来的Wat ...
- 弹出框JBox实例
前几天做的考试系统的一些后台弹出框的一些模板.主要是因为普通的弹出框样式不是很好,颜色也不能调换.这里我们用的是JBox,还是从师傅那得知的.自己小实验了下,这里就做个小结. JBox 插件说明 - ...
- SQL连接查询的方式
网上copy,以后来完整 连接条件可在FROM或WHERE子句中指定,建议在FROM子句中指定连接条件.WHERE和HAVING子句也可以包含搜索条件,以进一步筛选连接条件所选的行. ...
- cas 3.5.2 登录成功后,如何返回用户更多信息?
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- HP LoadRunner 11 破解及license
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- ios 说一说UINavigationController 的堆栈
iOS的界面堆栈管理比android的要好用很多. 这里写两点:一点是 如何重回前面的vc,而不是push一个alloc的新界面.第二点就是判断当前堆栈显示的vc是何vc. vc堆栈: vc1-> ...
- C++ Primer 学习笔记_76_模板与泛型编程 --模板定义[续]
模板与泛型编程 --模板定义[续] 四.模板类型形參 类型形參由keywordclass或 typename后接说明符构成.在模板形參表中,这两个keyword具有同样的含义,都指出后面所接的名字表示 ...
- Chart控件的多种使用方法
花了近一周时间专门研究.net 3.5平台提供的Chart控件的使用方法,感觉该控件的功能很强大,做出的图表效果也很美观,使用方法也并不复杂.如今先讲下Chart控件的部署及一些基本使用方法. 一.安 ...
- HDU 5475 An easy problem 线段树
An easy problem Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pi ...