Ich habe mein eigenes ObjektC++ überprüfen, ob ein Objekt in zwei Karten besteht
class my_object
{
int id;
bool state;
string name;
string vendor;
}
Und ich möchte mein Objekt speichern in zwei map
für schnell genug Referenz.
std::map<string, my_object> map1;
std::map<string, my_object> map2;
Schließlich möchte ich, wenn es zu überprüfen, einige Tasten meines Objekt existiert in beiden Karten sind:
for(each my_object m1 in map1 and my_object m2 in map2 have the same key)
//for example, key "Bob" have corresponding objects in map1 and map2
{
if(m1.vendor == m2.vendor)
{
//do some work
}
}
Wie kann ich das vergleichen erreichen Job in zwei Karten? Oder sollte ich eine andere Datenstruktur verwenden?
UPDATE: Danke für die Antworten. Warum ich zwei Karten verwenden, weil zwei unterschiedliche Funktion, um die Karten produzieren:
function1() //returns map1;
function2() //returns map2;
Die in den beiden Karten verwendeten Schlüssel der name
Bereich my_object sind. Für "schnell genug Referenz" dachte ich, dass, wenn Map1 n Elemente hat, Map2 m Elemente hat, ist meine Rechenzeit n * m?
Was sind die zwei Schlüssel in den beiden Karten? Ist eine Karte mit 'name' und die andere mit' vendor' versehen? –
Es muss eine Lösung geben, aber es wäre so effizient. Wenn Sie uns gesagt haben, was Sie zu tun versuchen, kann es helfen. –
Wenn der gleiche Schlüssel in beiden Karten ist garantiert das gleiche Objekt? –