Dans C ++, vérifiez si std :: vector contient une certaine valeur

Y at-il une fonction intégrée qui me dit que mon vecteur contient un certain élément ou non, par exemple

std::vector v; v.push_back("abc"); v.push_back("xyz"); if (v.contains("abc")) // I am looking for one such feature, is there any // such function or i need to loop through whole vector? 

Vous pouvez utiliser std::find comme suit:

 if (std::find(v.begin(), v.end(), "abc") != v.end()) { // Element in vector. } 

Pour pouvoir utiliser std::find : include .

  1. Si votre conteneur ne contient que des valeurs uniques, envisagez d’utiliser std::set place. Il permet d’interroger l’appartenance à un ensemble avec une complexité logarithmique.

     std::set s; s.insert("abc"); s.insert("xyz"); if (s.find("abc") != s.end()) { ... 
  2. Si votre vecteur est maintenu sortingé, utilisez std::binary_search , il offre également une complexité logarithmique.

  3. Si tout échoue, revenez à std::find , qui est une recherche linéaire simple.

En C ++ 11, vous pouvez utiliser std::any_of place.

c’est dans et appelé std::find .

std::find() .