2014-04-26 2 views
0

J'ai une pile séparée dans mon programme avec ce vecteur de temporisation joint. Lorsqu'elle est appelée, la pile fait sortir un élément et la minuterie garde la trace de sa durée via l'entrée de l'utilisateur. Lorsque le temps atteint 0, l'élément est remis dans la pile. Je voulais travailler à travers plusieurs temporisateurs donc j'ai essayé de les mettre tous dans un vecteur et de les faire tous décrémenter d'une unité de temps quand une fonction est appelée. Pas totalement clair sur le fonctionnement des vecteurs, donc je ne sais pas comment décrémenter toutes les valeurs d'un vecteur.Cycle de décrémentation du vecteur C++

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

Je veux juste m'assurer que je vais dans la bonne direction.

Répondre

0

Voici comment vous pouvez décrémenter toutes les valeurs dans le vecteur

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

ou en utilisant 11 C++

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

Pour diminuer la valeur pointée par l'itérateur dans le code, vous pouvez le faire -

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

*itr renvoie la valeur étant pointée par l'itérateur.