push_back example español ejemplo c++ stdvector

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.



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