it-swarm.com.de

C++: Vergleich zweier Vektoren

Gibt es eine Möglichkeit, zwei Vektoren zu vergleichen?

if (vector1 == vector2)
    DoSomething();

Hinweis: Derzeit sind diese Vektoren nicht sortiert und enthalten ganzzahlige Werte.

64
Jame

Überprüfen Sie die std::mismatch - Methode von C++.

der Vergleich von Vektoren wurde im DaniWeb-Forum und auch beantwortet diskutiert.

C++: Vergleich zweier Vektoren

Überprüfen Sie den Post unter SO. wird für Sie hilfreich sein. Sie haben das gleiche mit der different-2-Methode erreicht.

Zwei Vektoren vergleichen C++

25
Jhaliya

Ihr Code (vector1 == vector2) entspricht der korrekten C++ - Syntax. Es gibt einen ==-Operator für Vektoren.

Wenn Sie einen kurzen Vektor mit einem Teil eines längeren Vektors vergleichen möchten, können Sie für Vektoren den Operatorequal() verwenden. ( Dokumentation hier )

Hier ist ein Beispiel:

using namespace std;

if( equal(vector1.begin(), vector1.end(), vector2.begin()) )
    DoSomething();
60
solvingPuzzles

Wenn sie wirklich absolut unsortiert bleiben müssen (was sie wirklich nicht tun ... und wenn Sie mit Hunderttausenden von Elementen zu tun haben, muss ich fragen, warum Sie Vektoren wie diese vergleichen würden), können Sie einen Vergleich zusammenstellen Methode, die mit unsortierten Arrays funktioniert. 

Die einzige Möglichkeit, dies zu tun, bestand darin, einen temporären vector3 zu erstellen und vorzugeben, einen set_intersection auszuführen, indem ich alle Elemente von vector1 hinzufügte, dann nach jedem einzelnen Element von vector2 in vector3 suche und es entferne, falls es gefunden wurde. Ich weiß, das hört sich schrecklich an, aber deshalb schreibe ich in naher Zukunft keine C++ - Standardbibliotheken.

Wirklich, sortieren Sie sie zuerst.

1
darvids0n

Entsprechend der Diskussion hier können Sie zwei Vektoren direkt miteinander vergleichen 

==

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