C ++递减向量循环

时间:2014-04-26 05:17:46

标签: iterator operators decrement

我的程序中有一个单独的堆栈,附带了这个定时器向量。调用时,堆栈弹出一个元素,计时器通过用户输入跟踪它的输出时间。当时间到达0时,元素将被放回堆栈中。我想通过多个计时器工作,所以我试图将它们全部放入一个向量中,并在调用函数时将它们全部递减一次。关于向量如何工作还不完全清楚所以我不知道如何递减所有向量的值。

int wait(vector<int> &x){
    std::vector<int>::iterator itr;
for(itr = x.begin(); itr < x.end(); itr++)
  {     //psuedocode 
    //x[itr]--;
  }
}

我只是想确保我朝着正确的方向前进。

2 个答案:

答案 0 :(得分:0)

要减少代码中迭代器指向的值,可以执行 -

for(itr = x.begin(); itr < x.end(); itr++)
  {     //psuedocode 
    (*itr)--;
  }

*itr返回迭代器指向的值。

答案 1 :(得分:0)

以下是如何减少向量中的所有值

int wait(vector<int> &x){
  for(std::vector<int>::iterator itr = x.begin(); itr != x.end(); itr++)
  {
    (*itr)--;
  }
}

或使用C ++ 11

int wait(vector<int> x){
    for (int& i : x ) 
      i--;
}