Effective STL 中文版:50条有效使用 STL 的经验 S. Meyers, 潘爱民, 陈铭, 邹开红. Effective STL 中文版:50条有效使用 STL 的经验. ISBN: 978-7-121-20125-7 STL (Standard Template Library)的中文名叫“标准模板库”。是目前 C++ 标准库的一部分。它提供一系列预定义的抽象数据结构和算法。基本上对应你...
区间成员函数是指这样的一类成员函数,它们像 STL 算法一样,使用两个迭代器参数来确定该成员操作所执行的区间。如果不使用区间成员函数就得写一个显示的循环。 优点在于: C++ 标准要求区间insert 函数把现有容器中元素直接移动到它们最终的位置上,即只需要付出每个元素移动一次的代价。 明智地使用区间插入而不是单元素...
二、vector和string 13 vector和string优于动态分配的数组 14 使用reserve来避免不必要的重新分配 reserve能够帮你把重新拍分配内存的次数降到最低 reserve分配的容量如果比当前的容量小,则什么都不做 15 注意string实现的多样性 string实现都会包含如下信息 字符串的大小,即包含字符的个数 用于存储字符串字符内存的容...
Effective STL之算法 一、确保目标区间足够大 STL容器在被添加时(通过insert、push_front、push_back等)自动扩展它们自己来容纳新对象。这是一个很不错的特性,有些程序员因为这个信仰而被麻痹,认为他们不必担心要为容器中的对象腾出空间,因为容器自己可以照顾好这些。但是当程序员想向容器中插入对象但并没有告诉STL...
Effective STL之在程序中使用STL 一、用纯函数做判断式 先介绍两个概念–“纯函数”与“判别式”: 纯函数是返回值只依赖于参数的函数。如果f是一个纯函数,x和y是对象,f(x, y)的返回值仅当x或y的值改变的时候才会改变。 判别式是返回bool(或者其他可以隐式转化为bool的东西)。判别式在STL中广泛使用。标准...
Effective STL(21) 永远让比较函数对相同元素返回false 问题描述: 昨天一哥们些的程序,在定义比较函数的时候是这样写的 代码语言:javascript 代码运行次数:0 boolcmp(constT&a,constT&b){if(a>=b)returntrue;returnfalse;} 在内部测试时,一直表现挺好,也没挂。 但一到线上,立即就挂了,打印出vector内的元素也...
在 Effective STL 中,我解释了怎样结合STL组件来在库的设计得到最大的好处。这样的信息允许你对简单、直接的问题开发简单、直接的解决方案,也帮你对更复杂的问题设计优雅的方法。我描述了常见的STL使用错误,而且向你演示怎么避开它们。那帮助你躲开闪资源漏、不可移植的代码和未定义的行为。我讨论了优化代码的方法...
Hello_Motty 迅速读懂:Effective STL (一) c++中stl不是面向对象编程,而是提供一种新的方式:泛型编程。当然这个话题说起来几天几夜也说不完,然而如果对于stl有一个一般的理解,比如可以使用标准容器对数据进行存储,然后可以对标准容器进行简单的增删查改,知道stl中的大致algorithm,并且纠结于平时如何使用stl可以更加...
还有另一个使用函数对象代替函数作为算法参数的理由,STL平台经常完全拒绝有效代码,即使编译器或库或两者都没问题。解决方式就是创建仿函数类,仿函数类的创造不仅避开了编译器一致性问题,而且可能会带来性能提升。 另一个用函数对象代替函数的原因是它们可以帮助你避免细微的语言陷阱。有时候,看起来合理代码被编译器由于合...