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. OneProxy实现mysql读写分离

    OneProxy for MySQL可以复用不同应用到后端数据库的连接,有效降低数据库的并发连接数:可以即时踢除不可用的节点,将应用请求转发到其他可用节点,保证业务服务的稳定性. 可透明地将查询语句分 ...

  2. 【翻译】Voidbox: Docker on YARN

    原文链接:Voidbox – Docker on YARN 读了此文,收获良多,翻译之,方便以后查看~ 文章介绍了Hulu北京大数据团队开发的Docker On YARN实现:Voidbox,一种基于 ...

  3. List(JDK1.7)(3)

    Vector 实现了一个存储对象的增长数组.如同一个数组,它可以使用一个整型下标来访问元素.但是,vector的大小是可以根据需要增长或收缩的. 每个vector通过维护capacity和capaci ...

  4. jdk1.8.0_45源码解读——ArrayList的实现

    jdk1.8.0_45源码解读——ArrayList的实现 一.ArrayList概述 ArrayList是List接口的可变数组的实现.实现了所有可选列表操作,并允许包括 null 在内的所有元素. ...

  5. 装好Linux后没有声音的看过来

    现代的Linux发行版对声卡的支持都应该没有问题.系统装好,声卡就应该正常工作. (尤其是ArchLinux,我觉得对硬件支持最跟得上时代步伐.) 可是我用mplayer播放mp3文件却没有声音,但也 ...

  6. 在cygwin下安装ns2

    首先下载ns2.可以到sourceforge去下载最新的all-in-one版本2.31,url为http://sourceforge.net/project/showfiles.php?group_ ...

  7. DNS域传送漏洞

    nslookup -type=ptr 8.8.8.8             #查询一个IP地址对应的域名 nslookup -type=ns baidu.com         #查询baidu.c ...

  8. c语言学习笔记.链表.

    链表: 链表单个节点的数据结构.链表的实现主要依靠结构体和指针. 头指针(head)指向链表的第一个节点,然后第一个节点中的指针指向下一个节点,然后依次指到最后一个节点,这样就构成了一条链表. str ...

  9. 2016.07.13-vector<vector<int>>应用2——Two Sum扩展

    收获: vector<vector<int> >res,不能直接用res[j].push_back(number),因为res[j]是空的,没有初始化 可以先定义 vector ...

  10. 安裝HA服務

    **************************************************************************************************** ...