随笔分类 - 编程语言汇总STL
摘要:在C++11之前,要实现函数对象或者仿函数,主要参考《C++设计新思维》中的Loki库,它采用模板推导的方式来实现。虽然Loki可以模拟函数对象,但其代码看起来比较晦涩,使用又不方便。在C++11以后,开始原生支持函数对象,新标准中的用法简单清晰,所有的可调用对象有了统一的调用方式,极易上手。本文总结函数对象的各种使用方法。 std::function的定义 #include tem...
阅读全文
摘要:使用背景 在多线程编程环境中,我们有时希望某个操作只做一次,比如获取一些系统变量;或者某个函数只被调用一次。我们就可以采用系统提供的std::call_once来保证。 我们再看下call_once的定义: template< class Callable, class... Args > void
阅读全文
摘要:简单介绍STL对集合操作有标准的算法:交集set_intersection、并集set_union、差集set_difference、对称差集set_symeetric_difference。 针对这里提及的四个集合运算必须特别注意: 1、第一个算法需保证第一集合和第二集合有序,并从小到大排序,内部使用默认“
OutputIterator set_inters...
阅读全文
摘要:有时我们要在map、vector容器中查找符合条件的记录,map提供一个find的成员函数,但也仅限于查找关键字满足条件的记录,不支持值域的比较。如果我们要在值域中查找记录,该函数就无能无力了。而vector甚至连这样的成员函数都没有提供。所以一般情况下进行值域的查找,要么自己遍历数据,要么求助于STL的find_if函数。前种方法我们这里就不赘述了,只讲find_if函数。
阅读全文