C ++で次のタイプの2つのマップを使用することを計画しています。std::map<char, Node>
ここNode
で、はカスタムクラスです。2つのマップがm1
あり、上記のタイプで、に存在するすべてのキーが含まれm2
ているかどうかを調べたいとします。つまり、とのキーのセットの共通部分が。のキーのセットと同じであることを確認したいと思います。m1
m2
m1
m2
m2
すべてのキーを繰り返してm2
afind()
またはcount()
onを実行することもできますm1
が、それは無駄に思え、おそらく遅くなります。これは、キーがバイナリ検索ツリーとしてソートされた順序でに格納されるためです。std::map
したがって、各検索/カウントはO(logn)を取り、の次のキーについてはm2
、のキーの同じパスm1
が最初からトラバースされます。
私はSTLを初めて使用するので、簡単に実行できるはずのことについての無知を許してください。また、いくつかの簡単なサンプルコードスニペットまたはコードスニペットへのリンクは、理解を深めるのに非常に役立ちます。Boostを含む非標準ライブラリを使用できません。
前もって感謝します!