这是个人阅读Effective STL所做的读书笔记第三部分,包含《Effective STL》条款21~条款30的笔记内容。
条款21:永远让比较函数对相等的值返回false
关联容器由于使用比较函数来判断新数据插入位置(等价思想),如果用户自定义的比较函数对相等的值返回true,将导致新插入的相等的值插入到关联容器中,对于不允许出现复本的关联容器来说已经破坏了其规则。这里书上举了一个使用less_equal作为比较方法的set的例子,形如:
这是个人阅读Effective STL所做的读书笔记第三部分,包含《Effective STL》条款21~条款30的笔记内容。
关联容器由于使用比较函数来判断新数据插入位置(等价思想),如果用户自定义的比较函数对相等的值返回true,将导致新插入的相等的值插入到关联容器中,对于不允许出现复本的关联容器来说已经破坏了其规则。这里书上举了一个使用less_equal作为比较方法的set的例子,形如:
在C++11正式标准发布7年后的今天,总算看到有比较多的公司开始普及使用C++11标准了,虽然编译器早已支持这个标准,但是愿意更新编译器的公司真是少啊,不知道C++14、C++17标准会在多远的未来才能正式出现在我们的代码里。一时兴起,把C++11标准的内容做个总结,一来是温故知新,二来是看看我还记得多少
这是个人阅读Effective STL所做的读书笔记第二部分,包含《Effective STL》条款11~条款20的笔记内容。
这一条款主要介绍了自定义分配器的使用,例如自定义共享内存分配器:
这是个人阅读Effective STL所做的读书笔记第一部分,包含《Effective STL》条款1~条款10的笔记内容。
只有你足够了解你正写的软件,它运行的环境,以及建立它的场景,才能确定违反该书提出的方针是否合理。多数时候,不是,而且伴随每个条款的讨论解释了为什么。在一些情况里,它是。对指南奴隶般的盲从是不对的,但骑士般的漠视也不对。在一个人冒险之前,你应该保证你有一个好原因。
本文包含《More Effective C++》中条款9至条款27内容的个人笔记。
通过使用智能指针或是将资源封装在栈上的对象内做到资源自动释放,但此种做法应该仅适用于异常抛出在非构造和析构时抛出;