std::map を使用していくつかのキーと値のペアを格納することにより、数値シミュレーション用のプログラムを作成しています。マップは、シミュレーション中に展開された状態を格納するために使用されます。キーのタイプは整数であり、キーに対応する値は、同じキーに対していくつのコピーがあるかを示します。つまり、std::map です。シミュレーションの各ステップで、同じキーに対していくつの値があるかを計算する必要があるため、次のコードで確認します。
if (map[key]>0) {do something here with the number of copies}
ただし、マップにそのようなキーがなくても、マップ[キー]を呼び出すたびに、そのキーのプレースホルダーが生成され、値がゼロに設定されるため、このコードが機能しないことがすぐにわかります。したがって、私は常に std::map.size() によってキーの総数を過大評価しています。後でコードを次のように変更して、代わりにキーを検索します
if (map.find(key)!=map.end()) {...}
では、マップのキーが存在するかどうかを確認する唯一かつ最速の方法はありますか? シミュレーションを数億回実行すると、キーをチェックするために上記のコードが頻繁に呼び出されます。代わりに map.find() を使用するには遅すぎますか? ありがとう。