c++ vector的迭代器it 可以it=it+1;为什么list的迭代器 不可以it=it+1呢啊??

2024-11-09 10:02:09
推荐回答(2个)
回答1:

1、std::list是顺序容器,但不是随机访问容器(仅有std::vector,C数组和c++11中的std::array是),所以其迭代器只支持++和--这种双向的链式操作(c++11中的slist则只支持++)。


2、如果想一次移动多个位置,也可以使用里的advance函数,例子如下:

list::iterator it = mylist.begin();
advance (it,5);
cout << "The sixth element in mylist is: " << *it << endl;

回答2:

list容器的迭代器不支持加减等数术运算,因为list容器不支持像vector容器那样的快速随机访问,只能依次访问每个元素。