Diese SO-Antwort besagt, dass die STL-Karte mit einem Vektor für den Schlüssel Vektor als Schlüssel verwendet werden kann. Wenn wir also einen Vektor als Schlüssel verwenden. Wie funktioniert das tatsächlich, da der Schlüssel eindeutig sein map
muss? Wenn wir also einen anderen Vektor mit denselben Elementen einfügen, wird die Überprüfung auf doppelte Elemente für Elemente oder der Name des Vektors etwas angeben? Wie der Name des Arrays die Basisadresse darstellt. Ein Array kann also als Schlüssel verwendet werden, da die Basisadresse in diesem Fall als Schlüssel verwendet werden kann, aber was ist der Schlüssel im Fall eines Vektors. Wie funktioniert es intern?
Denn wenn ich den Namen des Vektors drucke, wird eine Fehlermeldung angezeigt
vector<int> v;
cout<<v; //error
has operators == and <
Wie hilft das? Meine Frage war zu überprüfen, ob doppelte Elemente zugeordnet sind, um den Vektorschlüssel Element für Element zu vergleichen
std::vector
als Schlüssel für zu verwenden std::map
. Sie bezahlen für das, was Sie verwenden . Es kann getan werden, und vielleicht gibt es einige Anwendungsfälle dafür, aber mit Sicherheit können Sie die Datenstruktur Ihrer Wahl ändern. STL-Container sind so konzipiert, dass sie maximal vielseitig und in jeder Weise verwendbar sind, die der Benutzer jemals verwenden möchte.
std::map
kopiert sowohl Schlüssel als auch Wert in sich. std::unordered_map
kann den Hash des Schlüssels speichern.