C ++:你可以迭代一个const_iterator而无需访问底层的向量吗?

时间:2017-11-21 19:14:40

标签: c++ c++11

我有一个xml解析器,它返回一个vector :: const_iterator。我永远无法访问底层矢量。

我有没有办法迭代并读取向量的值?

1 个答案:

答案 0 :(得分:0)

请参阅以下代码:

#include <iostream>
#include <vector>


const std::vector<int> myvector = {0, 1, 1, 92, 30, 4, 5, 6};

std::vector<int>::const_iterator getIterator() {
   return myvector.cbegin();
}
int main () {

   std::cout << "myvector contains:";
   std::vector<int>::const_iterator it = getIterator();

   while (*it != 30) {
      std::cout << ' ' << *it;
      it ++;
   }
   std::cout << '\n';

   return 0;
}

使用此代码,您只能通过它的const_iterator读取向量的内容。