comment vérifier qu'une valeur existe dans c++ stl vecteur et d'appliquer une fonction à chaque élément du vecteur?

J'ai deux questions liées à la vecteur classe de la bibliothèque standard de C++.

  1. Comment puis-je vérifier si une valeur (disons d'un entier) existe déjà dans un vecteur?

    Ce que je veux dans les mots est comme suit: "si l'entier existe déjà dans le vecteur, la prochaine, sinon l'ajouter à la fin du vecteur."

  2. Comment puis-je appliquer une fonction qui détient les arguments pour chaque élément du vecteur? (Il semble que je ne peux pas le faire avec for_each)

    Dans les mots: "pour chaque z de l'élément dans le vecteur d'appliquer MyAddFn(i,j)"

... ou peut-être que je ne suis pas sur la bonne voie avec le vecteur stl conteneur de séquence, et je dois définir mon propre itérateur?

Que voulez-vous dire exactement dans (2)? Ce qui devrait MyAddFn(i,j) être appliquée?
Pouvez-vous veuillez donner des précisions 2 ?
Êtes-vous en mesure d'utiliser le C++11 fonctions avec votre compilateur ? Si vous l'êtes, je vous conseille d'utiliser for_each avec un lambda ou std::bind. Sinon, vous pouvez traiter avec bind1st et bind2nd, mais vous devriez vraiment jeter un oeil à boost::foreach.

OriginalL'auteur tagoma | 2012-07-14