
stl
吴正伟的博客
这个作者很懒,什么都没留下…
展开
-
STL 中的 set 使用自定义比较运算符
set 容器模版需要3个泛型参数,如下:template<class T, class C, class A> class set;第一个T 是元素类型,必选; 第二个C 指定元素比较方式,缺省为 Less<T>, 即使用 < 符号比较; 第三个A 指定空间分配对象,一般使用默认类型。因此: (1) 如果第2个泛型参数你使用默认值的话,你的自定义元素类型需要重载 < 运算操作; (2) 如果原创 2015-04-15 20:34:09 · 1735 阅读 · 0 评论 -
function对象使用使用详解
模板类function是一个通用的多态函数包装器,它的实例可以存储、拷贝并调用任何可调用对象- 函数、lambda表达式、bind表达式等其他函数对象。还可以是成员函数指针或数据成员的指针。对空的function实例调用将会抛出std::bad_function_call异常。#include <iostream> #include <functional>int main() { std:原创 2015-04-16 21:01:17 · 836 阅读 · 0 评论 -
STL--迭代器--原理与实践
迭代器(iterator)是STL里面很基础也很重要的一个东西,迭代器的traits技术设计的很棒。 迭代器是一种行为类似指针的对象,因为指针最常用的是->和*两个操作符,因此迭代器最重要的编程工作也是对这两个操作符的重载的实现。初探traits技术假设现在定义了这样一个迭代器MyIter,当我们拿到一个MyIter对象时,如何判断他的类型呢?template<class T> struct My原创 2015-05-03 11:35:29 · 1123 阅读 · 0 评论 -
为包含指针的关联容器指定比较类型
错误是怎么来的?我写下这样的代码: set<string*> ssp; ssp.insert(new string("Ant")); ssp.insert(new string("Wom")); ssp.insert(new string("Lem")); ssp.insert(new string("Pen")); for (set<string*>:原创 2015-06-16 15:43:00 · 616 阅读 · 0 评论 -
STL-map中的插入操作详解
首先,我们可以如下使用map://#include <map>map<string, int> simap; map[string("hou")] = 1; map[string("hou")] = 2; pair<string, int> value(string("ha"), 5); simap.insert(value);先看insert操作的源码: pair<iterator,bool> i原创 2015-05-22 10:40:40 · 1408 阅读 · 0 评论