点击查看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,stringdeque,则使用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的更多相关文章

  1. 《Effective STL》学习笔记

    http://www.cnblogs.com/arthurliu/archive/2011/08/07/2108386.html 作者:咆哮的马甲 出处:http://www.cnblogs.com/ ...

  2. ###《Effective STL》--Chapter3

    点击查看Evernote原文. #@author: gr #@date: 2014-09-13 #@email: forgerui@gmail.com Chapter3 关联容器 Topic 22: ...

  3. ###《Effective STL》--Chapter5

    点击查看Evernote原文. #@author: gr #@date: 2014-09-17 #@email: forgerui@gmail.com Chapter5 算法 Topic 30: 确保 ...

  4. ###《Effective STL》--Chapter6

    点击查看Evernote原文. #@author: gr #@date: 2014-09-27 #@email: forgerui@gmail.com Chapter6 函数子.函数子类.函数及其他 ...

  5. ###《Effective STL》--Chapter7

    点击查看Evernote原文. #@author: gr #@date: 2014-08-31 #@email: forgerui@gmail.com Chapter7 在程序中使用STL Topic ...

  6. ###《Effective STL》--Chapter2

    点击查看Evernote原文. #@author: gr #@date: 2014-09-15 #@email: forgerui@gmail.com Chapter2 vector和string T ...

  7. ###《Effective STL》--Chapter4

    点击查看Evernote原文. #@author: gr #@date: 2014-09-14 #@email: forgerui@gmail.com Chapter4 迭代器 Topic 26: i ...

  8. 容器使用的12条军规——《Effective+STL中文版》试读

    容器使用的12条军规——<Effective+STL中文版>试读     还 记的自己早年在学校学习c++的时候,老师根本就没有讲STL,导致了自己后来跟人说 起会C++的时候总是被鄙视, ...

  9. 《Effective STL中文版》前言

    <Effective STL中文版>前言     我第一次写关于STL(Standard Template Library,标准模板库)的介绍是在1995 年,当时我在More Effec ...

随机推荐

  1. hdoj 1234 开门人和关门人

    开门人和关门人 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) #include ...

  2. configparser

    configparser configparser模块是python中用来处理类似于windows的ini格式文件, 一个ini文件的格式 [section] key = value

  3. Oracle- UPDATE FROM讲解

    在表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.像sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通 ...

  4. Nodejs 动态加载 require

    nodejs的require是保存在缓存中的,即require一次之后再次require值是不会改变的. 如: a.js var a = 12; exports.a = a; test.js var ...

  5. 使用JDK自带jvisualvm监控tomcat

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. Lotus分析

    一 Lotus的任务 Lotus是一个消息通知服务,topic和subscription是多对多的关系.后面我加了一个发送自定义邮件和自定义短信的功能. 产品里面有个监控报警和通知列表.监控报警里创建 ...

  7. yarn 集群部署,遇到的问题小结

    版本号信息: hadoop 2.3.0  hive 0.11.0 1. Application Master 无法訪问     点击application mater 链接,出现 http 500 错 ...

  8. BZOJ 1151 傲娇的人 排序

    傲娇的人 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/1151 Descrip ...

  9. Matplotlib 工具包 使用教程索引

    官方文档链接中: http://matplotlib.org/gallery.html 这里给了非常多演示样例图片.能够查看对应源码,是一个非常好学习途径. matplotlib 函数API :函数A ...

  10. [MODx] Build a CMP (Custom manager page) using MIGX in MODX 2.3 -- 1

    BIG FUCK for MODx MODx document is not that good  ...  at least in my opint of view. I spend hours t ...