に存在する場合、私が持っているチェック++と私は十分に速く、参照用の2つのmap
に私のオブジェクトを格納したいと思います。Cは、私自身のオブジェクト</p> <pre><code>class my_object { int id; bool state; string name; string vendor; } </code></pre> <p>オブジェクトは二つのマップ
std::map<string, my_object> map1;
std::map<string, my_object> map2;
最後に、私は私のオブジェクトの一部のキーがあるかどうかを確認したいの両方のマップに存在する:
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
}
}
どのように私は2つのマップに比較する仕事を達成することができますか? また、別のデータ構造を使用する必要がありますか?
更新日: 返信いただきありがとうございます。
function1() //returns map1;
function2() //returns map2;
両方のマップに使用されるキーは、my_objectをのname
分野である2つの異なる機能は、マップを生成しますので、 私は2つのマップを使用していますなぜです。 「十分に速い参照」については、map1にn個の要素がある場合、map2にm個の要素があり、計算時間はn * mですか?
2つのマップでは2つのキーが何ですか? 1つのマップは 'name'と' vendor'によってキーイングされていますか? –
解決策が必要ですが、効率的です。あなたが何をしようとしているか教えてくれたら助けになるかもしれません。 –
同じキーが両方のマップにある場合、同じオブジェクトが保証されますか? –