Effective STL 学习笔记:19 ~ 20

*/-->

div.org-src-container {
font-size: 85%;
font-family: monospace;
}

1 Item 19: 相等 (Equality) 与等价 (Equivalence)

在 STL 中, 相等 (Equality) 用于 find 算法中,通常通过 \(operator ==\) 来体现。而 等价
(Equivalence)
则经常用于排序,通常用 \(operator

\begin{cases}
& !(w1

2 Item 20: Specify Comparison Type for Associative containers of pointers

对于存放指针的 Associative Containers 而言,如果我们不指定排序算法,则默认按照 指针 大小去排,对象指针我们无法控制,他们在容器中的排列顺序我们也就无法控制。如果我们需要指定其排序顺序,需自己指定 Comparison Type,例如:

class StrLessFunctor
{
public:
StrLessFunctor(){}
virtual ~StrLessFunctor(){}
bool operator()(const string* ps1, const string* ps2)
{
return *ps1 < *ps2;
}
}; int main(int argc, char *argv[])
{
set<string*, StrLessFunctor> ssp;
ssp.insert(new string("Banana"));
ssp.insert(new string("Orange"));
ssp.insert(new string("Apple")); for_each(ssp.begin(), ssp.end(), [](string* s){cout << *s << endl;});
return 0;
}

构造 set 时候指定的第二个模板参试不是一个函数,而是一个类型 (Comparison Type), set 会用该类型来初始化出来一个用于 sort 的函数。

Effective STL 学习笔记:19 ~ 20的更多相关文章

  1. Effective STL 学习笔记 32 ~ 33

    Effective STL 学习笔记 32 ~ 33 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  2. Effective STL 学习笔记 31:排序算法

    Effective STL 学习笔记 31:排序算法 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  3. Effective STL 学习笔记: Item 22 ~ 24

    Effective STL 学习笔记: Item 22 ~ 24 */--> div.org-src-container { font-size: 85%; font-family: monos ...

  4. Effective STL 学习笔记 39 ~ 41

    Effective STL 学习笔记 39 ~ 41 */--> div.org-src-container { font-size: 85%; font-family: monospace; ...

  5. Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value

    Effective STL 学习笔记 Item 38 : Design functor classes for pass-by-value */--> div.org-src-container ...

  6. Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据

    Effective STL 学习笔记 Item 34: 了解哪些算法希望输入有序数据 */--> div.org-src-container { font-size: 85%; font-fam ...

  7. Effective STL 学习笔记 Item 30: 保证目标区间足够大

    Effective STL 学习笔记 Item 30: 保证目标区间足够大 */--> div.org-src-container { font-size: 85%; font-family: ...

  8. Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor

    Effective STL 学习笔记 Item 26: Prefer Iterator to reverse_iterator and const_rever_itertor */--> div ...

  9. Effective STL 学习笔记 Item 21:Comparison Function 相关

    Effective STL 学习笔记 Item 21:Comparison Function 相关 */--> div.org-src-container { font-size: 85%; f ...

随机推荐

  1. python学习(22) 访问数据库

    原文链接:http://www.limerence2017.com/2018/01/11/python22/ 本文介绍python如何使用数据库方面的知识. SQLite SQLite是一种嵌入式数据 ...

  2. HDU 6230

    Palindrome Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others)Tota ...

  3. [spark]-Spark2.x集群搭建与参数详解

    在前面的Spark发展历程和基本概念中介绍了Spark的一些基本概念,熟悉了这些基本概念对于集群的搭建是很有必要的.我们可以了解到每个参数配置的作用是什么.这里将详细介绍Spark集群搭建以及xml参 ...

  4. 64位Ubuntu 安装scrapy遇到的问题

    这两天准备开始学习Python爬虫,安装scrapy框架后出现 Traceback (most recent call last): File "/usr/local/bin/scrapy& ...

  5. Elasticsearch之Java实战

    资料 http://www.cnblogs.com/kamong/p/6099914.html 搭建Elasticsearch服务器

  6. 计算广告学-多点归因模型(Multi-Touch Attribution Model)

    计算广告学中的一个重要的问题是, 如果用户产生了一次转化(conversion, 比如购买, 注册等), 且该用户在转化之前看过大量不同频道(比如搜索, 展示, 社交等等)的广告, 那么我们如何确定是 ...

  7. 数据库(二)之SQL Server

    什么是SQL SERVER?  Microsoft发布的SQL Server产品是一个典型的关系型数据库管理系统.  功能强大  操作简便  可靠的安全性 SQL Server 2008体系结构  S ...

  8. HDU 4690 EBCDIC 2013 Multi-University Training Contest 9

    解题报告:一个模拟题,有两张表格,然后输入一个字符在第一章表格中的位置,让你找出这个字符在第二章表对应的位置. 我欧诺个的是暴力打表,输了两百多个数字,时间复杂度直接降到O(1),这题觉得比较坑的就是 ...

  9. Python练习-递归二分算法

    # 编辑者:闫龙 #递归,二分算法演示 l = [i for i in range(1,100)]#定义一个列表l,并追加1-99的所有数字 def FindNum(num,l):#定义函数FindN ...

  10. 20145202马超 2016-2017-2 《Java程序设计》第三次实验

    实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA 在IDEA中使用工具(Code->Re ...