Est-il possible de comparer deux vecteurs?
if (vector1 == vector2)
DoSomething();
Remarque: Actuellement, ces vecteurs ne sont pas triés et contiennent des valeurs entières.
Vérifiez std::mismatch
méthode de C++.
la comparaison des vecteurs a été discutée sur le forum DaniWeb et également répondu.
C++: comparaison de deux vecteurs
Vérifiez le post ci-dessous SO. sera utile pour vous. ils ont obtenu le même résultat avec la méthode different-2.
Votre code (vector1 == vector2
) correspond à la syntaxe C++ correcte. Il existe 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 rester non triés (ce qu'ils ne font vraiment pas .. et si vous avez affaire à des centaines de milliers d'éléments, je dois vous demander pourquoi vous compareriez des vecteurs comme celui-ci), vous pouvez alors comparer méthode qui fonctionne avec des tableaux non triés.
La seule façon de le faire était de créer un vector3
temporaire et de prétendre faire un set_intersection
en y ajoutant tous les éléments de vector1
, puis en effectuant une recherche de chaque élément individuel de vector2
dans vector3
et en le supprimant s’il est trouvé. Je sais que cela semble terrible, mais c'est pourquoi je n'écris pas de bibliothèque standard C++ de si tôt.
Vraiment, commencez par les trier.
Selon la discussion ici vous pouvez directement comparer deux vecteurs à l’aide de
==
if (vector1 == vector2){
//true
}
else{
//false
}