2014-04-26 24 views
0

我在附有此计时器向量的程序中有一个单独的堆栈。当被调用时,堆栈会弹出一个元素,定时器会通过用户输入记录它的输出时间。当时间到达0时,元素将被放回堆栈。我想通过多个定时器来工作,所以我试图将它们全部放入一个向量中,并在调用一个函数时将它们全部递减一个时间单位。不完全清楚矢量如何工作,所以我不知道如何递减矢量的所有值。C++递减向量周期

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

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

回答

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

为了减少在代码中的迭代器所指向的值,你可以做 -

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

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