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 サイトの他の関連記事を参照してください。