随笔分类 -  STL

摘要:1 仿函数的概念仿函数,又名函数对象,是一个定义了operator ()的对象。仿函数的主要功能代码在仿函数类的operator ()体内完成。仿函数的妙处:(1) 仿函数比一般函数更灵巧,可以用有状态,对于仿函数可以同时拥有两个状态的不同实体。(2) 每个仿函数都有其型别,通过传递不同型别的仿函数当作template参数给容器,可以构造出型别不同的容器。(3) 执行速度上,仿函数通常比函数指针快。很多stl算法有一个函数参数,例如remove_if,for_each等,这个函数可以是普通的全局函数,仿函数,类的成员函数(非static,static可以作为全局函数使用),类的成员函数比较特殊 阅读全文
posted @ 2013-03-09 11:24 landy聪 阅读(607) 评论(0) 推荐(0)
摘要:1 容器的共通能力和共通操作1.1容器的共通能力容器三个核心能力是:(1)容器元素必须能够拷贝所有容器提供的都是"value"语意而非"reference语意"。元素插入容器内时,实施的是拷贝操作,因此STL容器的每一个元素都必须能够拷贝(存在public copy构造函数),否则容器内的元素只能是指向对象的指针。(2)每个容器都提供“可返回迭代器”的函数迭代器是容器和算法之间的“桥梁”,算法通过迭代器来操纵容器内的元素。(3)调用者必须确保传给操纵函数的参数符合需求一般而言,各项操作并非绝对安全,调用者必须确保传给操纵函数的参数符合需求。比如:对于利用 阅读全文
posted @ 2013-03-06 18:41 landy聪 阅读(324) 评论(0) 推荐(1)
摘要:1 迭代器迭代器是一种“能够遍历某个序列内的所有元素”的对象。它可以透过与一般指针一致的接口来完成自己的工作。迭代器是一种抽象的概念:任何东西,只要行为类似迭代器,就是一种迭代器。迭代器中“能力”是一个很重要的概念,据此可将迭代器划分成不同的类型。2 迭代器的类型迭代器类型能力供应者Input(输入)迭代器向前读取(read)istreamOutput(输出)迭代器向前写入(write)ostream,inserterForward迭代器向前读取和写入Bidirectional(双向)迭代器向前和向后读取和写入list,set,multiset,map,multimapRandom acces 阅读全文
posted @ 2013-03-04 19:50 landy聪 阅读(328) 评论(0) 推荐(0)