点击查看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. [C++]VS2010功能设置

    VS2010快捷键设置 工具->选项->环境->键盘->[显示命令包含] 下面输入“对齐”关键字->窗口显示关于“对齐”的所有操作命令->选中“某一个”->[ ...

  2. 【C语言】-循环结构-while语句

    while语句: while循环可实现"当型"循环,即当条件成立时,执行循环体.适合无法确定循环执行次数的情况. while (表达式) { 循环语句 } 注意: 表达式为循环控制 ...

  3. 转载ASP.NET MVC 和ASP.NET Web Form简单区别

    转载原地址 http://www.cnblogs.com/lei2007/p/3315431.html 概论: Asp.net  微软 提供web开发框架或者技术.分Web Form和ASP.NET  ...

  4. HDU 5289 Assignment(2015 多校第一场二分 + RMQ)

    Assignment Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total ...

  5. 本地win8系统部署网站遇到的问题

    网站开发环境:vs2013 .操作系统是win8.1系统. iis8   win8系统激活码:00261-30000-00000-AA825 需要部署的网站文件夹放在了桌面上,在iis里配置时,无法启 ...

  6. ThinkPHP CURD方法盘点:data方法

    data方法也是模型类的连贯操作方法之一,用于设置当前要操作的数据对象的值,可能大家不太习惯用这个方法,今天来讲解下如何用好data方法. 用法 写操作 通常情况下我们都是通过create方法或者赋值 ...

  7. js判断一个字符串是否在另一个字符串中存在 indexOf

    使用indexOf来实现.当返回值为-1时表示不存在. 举例: var href = 'www.51qdq.com';alert(href.indexOf('test')); //返回值 -1aler ...

  8. 第二周:01 ICP迭代交互

    本周主要任务01:利用PCL库函数,ICP融合两个角度的点云 任务时间:2014年9月8日-2014年9月14日 任务完成情况:可以使用键盘交互,显示每次ICP迭代结果 任务涉及基本方法: 1.PCL ...

  9. 假设有两个包含整数的vector对象,编写一段程序,检验其中一个vector对象是否是另一个的前缀。

    #include<iostream> #include<string> #include<vector> using namespace std; int main ...

  10. 文件I/O之ioctl函数

    ioctl函数是I/O操作的杂物箱.不能用其他函数表示的I/O操作通常都能用ioctl表示.终端I/O是ioctl的最大使用方面. ioctl函数通过对文件描述符发送特定的命令来控制文件描述符所代表的 ...