迭代器是一个较为抽象的概念,在C++的标准中并没有给出明确的定义。在C++ Primer中文版第5版的P95指出:迭代器是一种“通用机制”,也有人说迭代器是一个类似指针的概念,但学习Code并不是做文学工作,没有必要纠结其具体定义。
在C++中,迭代器是容器类和容器类行为(又叫算法、操作)之间的桥梁。
以vector为例:
1 | vector<int>:: iterator iter; //定义了一个iterator类型迭代器iter,此类型的对象可读可写 |
在顺序容器中,如果某操作会改变容器的大小,例如push_back,则容器对象的迭代器会失效,因为可能涉及存储空间的再分配,此时将迭代器理解成指针即可明白原因
当迭代器和一个整数值进行加减运算后,结果任为一个迭代器。而当两个迭代器进行加减运算后,结果是一个名为 difference_type类型的带符号整型数
关于迭代器的描述与应用更多在容器章节,后续需要持续补充