一、什么是 iterator
?
C++中,iterator
也被称为迭代器,其主要作用就是指向并访问容器中的元素,其像指针但不是指针。
PS:
- begin()函数返回一个指向容器第一个元素的迭代器;end()函数返回一个指向容器最后一个元素之后位置的迭代器,它是一个不存在的元素位置。
- STL中的 begin 和 end 定义的是一个半开放区间**[begin, end)**,end 并不指向容器中的元素,而是指向最后一个元素的后一个位置。
二、迭代器
正向迭代器和反向迭代器
2.1 正向迭代器
iterator
begin()
end()
#include <iostream> using namespace std; #include <string> int main() { string s1("hello world"); string::iterator it = s1.begin();// 指向第一个字符 while (it != s1.end()) { cout << *it << " "; } cout << endl; return 0; }
补充:
2.2 反向迭代器
reverse_iterator
rbegin()
rend()
int main() { string s1("hello world"); string::reverse_iterator it = s1.rbegin();// 指向最后一个字符 while (it != s1.rend()) { cout << *it << " "; it++; } cout << endl; return 0; }