2012-11-08 3 views
-2

J'utilise la STL sur C++ avec une liste déclarée. Je veux que pour chaque élément de la liste, il incrémente n. J'ai essayé ce code mais ça ne marche pas. Toute solution? Je vous remercie!Comment incrémenter dans std :: for_each?

int n=0; 
std::for_each(vec.begin(), vec.end(), increment); 
std::increment() { 
    n++; 
} 
+7

La seule solution qui vient à l'esprit - http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list –

+5

Cela ressemble à peu près équivalent à 'la taille()' . Je ne suis pas vraiment sûr de savoir pourquoi vous préférez 'std ::' à votre définition de fonction, soit. – chris

+0

@chris Je pense que votre solution serait une méthode valide. Je vous remercie! – albert

Répondre

0

Voici un programme complet. Pour chaque élément du vecteur, l'incrément est appelé avec l'élément comme paramètre. Le paramètre n'est pas utilisé en incrément.

#include <algorithm> 
#include <iostream> 
#include <ostream> 
#include <vector> 

int n = 0; 
void increment(int) 
{ 
    ++n; 
} 

int main() 
{ 
    // Create vector with 10 elements 
    std::vector<int> v(10); 

    std::for_each(v.begin(), v.end(), increment); 
    std::cout << n << std::endl; 

    return 0; 
} 
Questions connexes