🌀Jarson Cai's Blog
头脑是日用品,不是装饰品
第六讲:迭代器设计的原则&iterator traits的作用与设计
主要用于了解stl各种容器的内部构造,熟悉使用c++容器,并了解其底层原理。

第六讲:迭代器设计的原则&iterator traits的作用与设计

iterator traits

iterator traits是为了提取出迭代器的特点,迭代器必须有能力回答algorithm提出的问题。

c++标准库设计了5种回答方式,集成在class中(迭代器相关的类型,迭代器模版中本身必须定义出来):

  • iterator_category:迭代器的类型,具体表现在能否++或者–或者一下加减很多步
  • difference_type:代表两个iterator的距离应该用什么type来表现(随机访问:unsign interger,实现链表的都用ptrdiff_t类型)
  • value_type:iterator所指元素的类型
  • reference:引用(暂未使用)
  • pointer:指针(暂未使用)

5种associated type

但如果iterator本身不是class,例如native pointer(退化的iterator),如何回答算法的5个问题?

iterator traits

iterator traits iterator traits用于分离class iiterators和non-class iterators


最后修改于 2022-04-08

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。