web-dev-qa-db-fra.com

C++: comparaison de deux vecteurs

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.

64
Jame

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.

Compare deux vecteurs C++

25
Jhaliya

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();
60
solvingPuzzles

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.

1
darvids0n

Selon la discussion ici vous pouvez directement comparer deux vecteurs à l’aide de 

==

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