《泛型编程和STL》读后感|总结(1)

Iterator (迭代器,泛型指针)

Iterator是指针的泛型,是用来指向其他对象的一种对象。
Iterator对于泛型编程之所以重要,原因是它是算法与数据结构之间的接口

指针是一个 concept的一个model,Iterator是五个concepts的models:

  • Input Iterator
  • output Iterator
  • Forward Iterator
  • Bidirectional Iterator
  • Random Access Iterator

Input Iterators

书上是复数,应该是指一类吧。。
本质上,Input Iterator是某种类似指针的东西。
作为一般指针功能时,有三种重要的价值:

  • derefereceable 可以取值(只读不可写)
  • past the end 可以指向尾端后面
  • singular 可以指null

Output Iterator

和Input Iterator类似

  • 可以复制和赋值(只可写不可读)
  • 可以++

Forward Iterator

  • 可读可写
  • 可以在非线性算法中使用
  • 是Forward Iterator 必是Input Iterator 或Output Iterator

Const Iterator 和 Mutable Iterator

指向的值是常量就是const Iterator->(const *type)
变量就是Mutable Iterator

Bidirectional Iterator

Forward Iterator 的加强版
还可以双向移动。
Forward Iterator 就像单向链表,Bidirectiuonal Iterator 就像双向链表

Random Access Iterator

完整版Iterator 具有以上所有的功能,涵盖所有指针运算。
能以固定的时间随机访问任意元素。

你可能感兴趣的:(编程,泛型,STL)