参考博客:http://blog.csdn.net/kjing/article/details/6936325

迭代器和反向迭代器使用时:

end()永远指向最后一个元素的下一个位置;

若容器为空时,迭代器的begin()和end()指向位置相同,而后即使再给容器赋值,迭代器的begin()指向,仍然为空。

错误范例:


#include <iostream>
#include <vector>
void prin(int &i);
int main()
{
 int s=6;
 std::vector<int> ivec;
 std::vector<int>::iterator ite;
 ite=ivec.begin();
 std::vector<int>::reverse_iterator re_ite;
 
 for (std::vector<int>::size_type i=0;i!=10;i++)
 {
  ivec.push_back(i);
 }
 
 ivec[0]=100;
 re_ite=ivec.rend();
 ivec.push_back(100);
 for_each(ivec.begin(),ivec.end(),prin);

 std::cout<<*ite<<"\n";
 /*ite=ite+5;
 re_ite=re_ite-6;

 std::cout<<*ite<<"\n";
 std::cout<<*re_ite<<"\n";*/

}
void prin(int &i)
{std::cout<<i<<std::endl;}


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐