我看晚上有些资料是这样用的vector<CString> m_vtpMy;//如果我按顺序存入的时候m_vtpMy.push_back("d");
m_vtpMy.push_back("f");
m_vtpMy.push_back("e");
m_vtpMy.push_back("c");
m_vtpMy.push_back("a");//那么下面两种方法有什么区别
//方法1
for(int i=0;i<m_vtpMy.size();i++)
{
  MessageBox(m_vtpMy[i]);
}
//方法2
std::vector<CString>::iterator theIt;
for(theIt = m_vtpMy.begin(); theIt!=m_vtpMy.end(); theIt++)
{
  MessageBox(*theIt);
}谢谢解答

解决方案 »

  1.   

    stl的容器都是有ITERATOR的,因为VECTOR支持随机随访问,就可以通过下标来进行遍历。在这里的使用,基本是一样的,但是iterator封装了更多的接口。
      

  2.   

    对iterator不熟,但是方法一结果是:d  f  e  c  a
      

  3.   

    容器类都支持iterator,泛型算法中基本上都是通过iterator操作
      

  4.   

    对vector和deque这种顺序随机存储容器来说,这两种方式是一样的。
    对list,map,set这些容器来说,只能用iterator,不能用i
      

  5.   


    +1如果用vector,用迭代器访问和下标访问是一样的,因为vector在内存中是连续分配的,如果用list,那就不能用下标了,只能用迭代器访问,因为它是不连续的