ホームページ >バックエンド開発 >C++ >C std::map 内のキーの存在を効率的に確認するにはどうすればよいですか?

C std::map 内のキーの存在を効率的に確認するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-10 10:56:101051ブラウズ

How to Efficiently Check for Key Existence in a C   std::map?

std::map 内のキーの存在を確認する

最新の C の領域では、 std::map データ構造は以下を提供します。順序付けられた連想コンテナの洗練された実装。マップを操作するときの一般的なタスクは、コレクション内に特定のキーが存在するかどうかを判断することです。

提供されたコード スニペットを検討してください。

typedef map<string,string>::iterator mi;
map<string, string> m;
m.insert(make_pair("f","++--"));
pair<mi,mi> p = m.equal_range("f");
cout << p.first;

コードは、キーが存在するかどうかを確認しようとします。 「f」はマップ内に存在します。ただし、equal_range メソッドが使用されているため、意図した目的と一致しない可能性があります。キーの存在を効果的にチェックするには、より適切な方法は、find メソッドを終了イテレータと組み合わせて使用​​することです。

if (m.find("f") == m.end()) {
  // Key "f" not found
} else {
  // Key "f" found
}

find メソッドを使用すると、指定された要素を持つ要素を指すイテレータを取得できます。鍵。キーが存在しない場合、返されるイテレータはマップの終了イテレータと同等になります。このシンプルかつ効率的なメカニズムにより、std::map 内のキーの有無を簡単に判断できます。

以上がC std::map 内のキーの存在を効率的に確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。