C ++: Comparaison de deux vecteurs

Est-il possible de comparer deux vecteurs?

if (vector1 == vector2) DoSomething(); 

Remarque: Actuellement, ces vecteurs ne sont pas sortingés et contiennent des valeurs entières.

Vérifiez la méthode std::mismatch de C ++.

La comparaison des vecteurs a été discutée sur le forum DaniWeb et a également répondu .

C ++: Comparaison de deux vecteurs

Vérifiez le post SO ci-dessous. sera utile pour vous. ils ont atteint le même résultat avec la méthode des deux autres.

Comparer deux vecteurs C ++

Votre code ( vector1 == vector2 ) est la syntaxe C ++ correcte. Il y a un opérateur == pour les vecteurs.

Si vous souhaitez comparer un vecteur court avec une partie d’un vecteur plus long, vous pouvez utiliser l’opérateur equal() pour les vecteurs. ( documentation ici )

Voici un exemple:

 using namespace std; if( equal(vector1.begin(), vector1.end(), vector2.begin()) ) DoSomething(); 

S’ils doivent absolument restr non sortingés (ce qu’ils ne font pas vraiment .. et si vous avez affaire à des centaines de milliers d’éléments, alors je dois vous demander pourquoi vous comparez des vecteurs comme celui-ci), vous pouvez pirater ensemble méthode qui fonctionne avec des tableaux non sortingés.

La seule façon de le faire était de créer un vector3 temporaire et de faire semblant de faire une set_intersection en y ajoutant tous les éléments de vector1 , puis de rechercher chaque élément individuel de vector2 dans vector3 et de le supprimer si trouvé. Je sais que cela semble terrible, mais c’est pourquoi je n’écris pas de bibliothèques standard C ++ de sitôt.

Vraiment, cependant, sortingez-les d’abord.

Selon la discussion ici, vous pouvez directement comparer deux vecteurs en utilisant

==

 if (vector1 == vector2){ //true } else{ //false }