随笔分类 -  STL

摘要:函数子可匹接: 经常我们会同not1对函数返回进行转义: 但实际上isInteresting作为一个基本的函数指针,缺少not1所需要的函数定义。 unary_function和binary_function: 比较简便的方法就是从STL中继承上面这两个基类。所以函数子经常会出现下面这种代码 继承模 阅读全文
posted @ 2017-03-20 19:01 Przz 阅读(193) 评论(0) 推荐(0)
摘要:函数对象: 通常我们可以将函数作为参数传入另一个参数,比如qsort中传递函数指针。 STL函数对象则是函数指针的一种抽象形式。 传递方式: 由于标准库函数中,函数指针的传递是按照值传递的;所以函数对象在函数之间的传递也是 值传递 。 for_each示例: 函数对象示例: 合理设计: 因为函数对象 阅读全文
posted @ 2017-03-20 19:01 Przz 阅读(840) 评论(0) 推荐(0)
摘要:transform: 通过transform函数我们可以将一个仿函数作用域[begin,last)的每个元素身上,然后将结果保存到目标区间。 上述代码会将value中的元素调用transmogrify,然后通过赋值保存到results中。 但是这会出现一些问题, 因为results中没有对象,怎么可 阅读全文
posted @ 2017-03-20 18:59 Przz 阅读(214) 评论(0) 推荐(0)
摘要:operator[] 和 insert: map的[]操作和其他容器和内置[]没有关系 如果我们通过[]向map中插入or更新值,需要考虑一些东西 1.键已经存在,那么直接进行修改即可 2.键不存在,那么需要 值的默认构造创建一个新的对象,然后返回引用进行赋值 如果使用 operator[] 插入值 阅读全文
posted @ 2017-03-20 18:56 Przz 阅读(196) 评论(0) 推荐(0)
摘要:可重复插入?: 第二次调用insert,集合回去确认10是否已经存在。因为我们代入的比较函数是 = 祖父节点,所有当前值有可能与祖父值相同。 如果是右儿子,那么 =父亲节点 对于可能相等的情况判断一下 于是会先判断 (10b 10a)。如果两个都满足的话,两个点是不相同的。 但是判断函数换成了 le 阅读全文
posted @ 2017-03-20 18:55 Przz 阅读(410) 评论(0) 推荐(0)
摘要:remove: remove不是真正的删除,删除后数量并没有变化。 它接收一对迭代器,而不是一个容器,所以不知道它作用于哪个容器。 而且没有办法从一个迭代器获取对应于它的容器 实现 remove会用 需要保留的数据覆盖掉前面需要删除的数据 。然后返回一个需要被删除开始位置的迭代器。 所以通常需要结合 阅读全文
posted @ 2017-03-20 18:52 Przz 阅读(247) 评论(0) 推荐(0)
摘要:reserve: 强迫容器将它的容量变成n 可以避免不必要的重新分配 如果n大于当前容量,那么正常。 如果n小于当前容量,vector会忽略,string则是减小为 max(size(),n)。 如果我们需要大量的向容器中添加数据: for(int i = 0 ;i 阅读全文
posted @ 2017-03-20 18:50 Przz 阅读(294) 评论(0) 推荐(0)
摘要:allocator: 通常c++内存配置和释放操作是这样的: new算式主要有三个阶段: 调用::operator new配置内存 调用Fo::Fo()构造函数 返回一个对象的指针 allocator为了精密分工将步骤分开 1.allocate()和deallocatr()负责内存的配置和释放 2. 阅读全文
posted @ 2017-03-20 18:48 Przz 阅读(242) 评论(0) 推荐(0)
摘要:通常下面代码: 我们会觉得它们是是等价的。 为何empty()比较好? 主要是他们之间的效率有一定差距: empty对任意的容器都是常数时间 对于有点list实现,size需要线性时间 而size()则是通过区间遍历来数一数。 为何size()不能是常数的? 如果size()想在常数时间内实现,那么 阅读全文
posted @ 2017-03-20 18:42 Przz 阅读(777) 评论(0) 推荐(0)
摘要:有时候我们希望知道迭代器所指的元素类型。 以迭代器所指声明对象: 可以通过func_impl的参数类型推导 但是推导机制只适用于参数,无法推导返回类型 声明内嵌型 特例化实现 如果T不是一个迭代器对象,而是一个原生指针,那么内置类型不适合 可以考虑指针特例化实现 traits萃取机 阅读全文
posted @ 2017-03-20 18:38 Przz 阅读(264) 评论(0) 推荐(0)