español - vector c++ example
C++: comparando dos vectores (4)
¿Hay alguna manera de comparar dos vectores?
if (vector1 == vector2)
DoSomething();
Nota: Actualmente, estos vectores no están ordenados y contienen valores enteros.
Compruebe el método std::mismatch
de C ++.
La comparación de vectores se ha discutido en el foro de DaniWeb y también se ha respondido .
Compruebe la siguiente publicación SO. será útil para usted. Han logrado lo mismo con el método diferente-2.
De acuerdo con la discusión here , puedes comparar directamente dos vectores usando
==
if (vector1 == vector2){
//true
}
else{
//false
}
Si realmente tienen que permanecer sin clasificar (que realmente no lo hacen ... y si estás tratando con cientos de miles de elementos, entonces tengo que preguntarte por qué estarías comparando vectores como este), puedes hacer una comparación Método que funciona con matrices sin clasificar.
Pensé que la única forma de hacerlo era crear un vector3
temporal y pretender hacer un set_intersection
agregándole todos los elementos de vector1
, luego hacer una búsqueda de cada elemento individual de vector2
en vector3
y eliminarlo si se encuentra. Sé que suena terrible, pero es por eso que no estoy escribiendo bibliotecas estándar de C ++ en el corto plazo.
Realmente, sin embargo, solo ordénalos primero.
Su código ( vector1 == vector2
) es la sintaxis de C ++ correcta. Hay un operador ==
para vectores.
Si desea comparar un vector corto con una porción de un vector más largo, puede usar el operador equal()
para los vectores. ( documentación aquí )
Aquí hay un ejemplo:
using namespace std;
if( equal(vector1.begin(), vector1.end(), vector2.begin()) )
DoSomething();