这里的迭代器能够与STL组件共同工作,是对STL的一种扩充。 自定义迭代器必须提供iterator_traits的五种特性,分别是迭代器类型、元素类型、距离类型、指针类型与reference类型。 这里我们继承标准库提供的iterator即可。 代码如下: MyIterator.hpp 该迭代器针对...
分类:
其他好文 时间:
2014-09-29 23:37:51
阅读次数:
188
//5种迭代器,为了激活重载机制,定义的5个类型。每种迭代器就是一个类型。
struct input_iterator_tag{};
struct output_iterator_tag{};
struct forward_iterator_tag : public input_iterator_tag{};
struct bidirectional_iterator_tag:public fo...
分类:
其他好文 时间:
2014-08-09 11:43:17
阅读次数:
275
经验:Template metaprogramming (TMP, 模板元编程)可将工作由运行期移往编译期,因而得以实现早期错误侦测和更高的执行效率
示例1:
template
void advance(IterT &iter, DistT d){
if(typeid(typename std::iterator_traits::iterator_catogory) == typeid(std::random_access_it...
分类:
编程语言 时间:
2014-07-16 13:20:54
阅读次数:
313