获取迭代器的位置?? C ++

时间:2014-04-05 16:51:59

标签: c++ iterator

需要检查位置是奇数还是偶数。

 for(auto a : aliens) {
  if(a - vec.begin() % 2 == 0){

   /*do something */ 
  }

猜测它会像我研究过的那样,但似乎无法让它运行起来相当烦人。 感谢..

2 个答案:

答案 0 :(得分:3)

更简单的方法:

bool isEven = true;
for(auto a : aliens) {
  isEven = !isEven;
  if(isEven){

   /*do something */ 
  }

答案 1 :(得分:0)

实际上你不能在这种类型的循环中做到这一点。这是foreachforeach不允许您访问迭代器,而是访问迭代对象本身。当您需要访问迭代器时,必须使用for循环。