【问题标题】:C++ decrement vector cycleC++ 递减向量循环
【发布时间】:2014-04-26 05:17:45
【问题描述】:

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

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

我只是想确保我的方向是正确的。

【问题讨论】:

    标签: iterator operators decrement


    【解决方案1】:

    这是减少向量中所有值的方法

    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--;
    }
    

    【讨论】:

      【解决方案2】:

      要减少代码中迭代器指向的值,可以这样做 -

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

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

      【讨论】:

        猜你喜欢
        • 2018-01-16
        • 2014-11-17
        • 2011-10-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多