迭代器
#include <iostream> #include <array> /* 编译需指定 --std=c++11 */ int main () { std::array<int,5> myarray = { 2, 16, 77, 34, 50 }; std::cout << "myarray contains:"; for ( auto it = myarray.begin(); it != myarray.end(); ++it ) std::cout << ' ' << *it; std::cout << '\n'; return 0; }
反向迭代器
#include <iostream>
#include <array>
/*
编译需指定 --std=c++11
*/
int main () { std::array<int,4> myarray = {4, 26, 80, 14} ; std::cout << "myarray contains:"; for ( auto rit=myarray.rbegin() ; rit < myarray.rend(); ++rit ) std::cout << ' ' << *rit; std::cout << '\n'; return 0; }
迭代器常用操作【类比指针】:
*iter //对iter进行解引用,返回迭代器iter指向的元素的引用
iter->men //对iter进行解引用,获取指定元素中名为men的成员。等效于(*iter).men
++iter //给iter加1,使其指向容器的下一个元素 iter++ --iter //给iter减1,使其指向容器的前一个元素 iter-- iter1==iter2 //比较两个迭代器是否相等,当它们指向同一个容器的同一个元素或者都指向同同一个容器的超出末端的下一个位置时,它们相等 iter1!=iter2