摘要: STL 头文件中都有什么,这里有一个快速概要: 1. 几乎所有的容器都在同名的头文件里,比如,vector 在<vector> 中声明,list 在 <list> 中声明等。例外的是<set>声明了set 和 multiset,<map> 声明了 map 和 multimap 2. 除了四个算法外, 阅读全文
posted @ 2018-12-02 21:26 KidyCharon 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 假设有一个 vector<int>,想要去掉 vector 中的值小于 x 而出现在至少和 y 一样大的最后一个元素之后的所有元素 可以使用的方法: 找到 vector 中一个值最后一次出现需要用逆向迭代器调用 find 或 find_if 的某种形式 去掉元素需要使用 erase 或 erase- 阅读全文
posted @ 2018-12-02 21:20 KidyCharon 阅读(152) 评论(0) 推荐(0) 编辑
摘要: STL 函数对象——化妆成函数的对象——传递给算法所产生的代码比一般传递真的函数高效 假设需要以降序排序一个 double 的 vector,最直接的 STL 方式是通过 sort 算法和 greater<double> 类型的函数对象: 避开函数对象而使用真的函数,一个真的内联函数: 其中,gre 阅读全文
posted @ 2018-12-02 20:54 KidyCharon 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 如果区间有序,可以使用对数时间的算法,binary_search、lower_bound、upper_bound 和 equal_range 如果迭代器没有划分一个有序区间,只能用线性时间的算法 count、count_if、find 和 find_if cout 回答: 是否存在这个值,如果有,那 阅读全文
posted @ 2018-12-02 14:48 KidyCharon 阅读(400) 评论(0) 推荐(0) 编辑
摘要: 有些容器拥有和 STL 算法同名的成员函数。 关联容器提供了 count、find、lower_bound、upper_bound 和 euqal_range list 提供了 remove、remove_if、unique、merge 和 reverse 大多数时候应该用成员函数代替手写算法,这样 阅读全文
posted @ 2018-12-02 11:02 KidyCharon 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 每一个算法接受至少一对用来指示将被操作对象区间的迭代器,比如,min_element 可以找出此区间中的最小的值,而 accumulate 则对区间内的元素作某种形式的整体求和运算,partition 将区间内的元素分割为满足和不满足某某判决条件的两个部分。算法执行时,他们进行检查指示给它的区间中的 阅读全文
posted @ 2018-12-02 10:28 KidyCharon 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 蜗角虚名 苏轼 蜗角虚名,蝇头微利,算来著甚干忙。事皆前定,谁弱又谁强。且趁闲身未老,须放我、些子疏狂。百年里,浑教是醉,三万六千场。 思量,能几许?忧愁风雨,一半相妨。又何须抵死,说短论长。幸对清风皓月,苔茵展、云幕高张。江南好,千钟美酒,一曲满庭芳。 阅读全文
posted @ 2018-12-01 21:02 KidyCharon 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 总结由容器、迭代器、算法和函数对象组成的 STL 是个惯例 运用 STL 编程要知道什么时候使用循环,什么时候使用算法,什么时候使用容器成员函数 要知道 equal_range 什么时候是比 lower_bound 更好的搜索方式 知道 lower_bound 什么时候比 find 更优越,知道 f 阅读全文
posted @ 2018-11-30 18:58 KidyCharon 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 假设有一个 Widget* 指针和 list 和一个函数来决定指针是否确定一个有趣的 Widget: 找到第一个有趣的 Widget : 找到第一个不有趣的 Widget: 取而代之,必须对 isInteresting 应用 ptr_fun 在应用 not1 之前: ptr_fun做的唯一的事情是使 阅读全文
posted @ 2018-11-30 16:32 KidyCharon 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 1. 判断式是返回 bool (或者其他隐式转换为 bool 的东西)。判断式在 STL 中广泛使用。标准关联容器的比较函数是判断式,判断式函数常常作为参数传给算法,比如 find_if 和多种排序算法。 2. 纯函数是返回值只依赖于参数的函数。如果 f 是一个纯函数, x 和 y 是对象, f(x 阅读全文
posted @ 2018-11-30 14:37 KidyCharon 阅读(148) 评论(0) 推荐(0) 编辑