C++のmap内でkeyに基づいてvalue値を取得する方法は何ですか。
C++で、mapのat()関数を使うと、keyに基づいて対応するvalue値を取得できます。例を示します。
#include <iostream>
#include <map>
int main() {
std::map<int, std::string> myMap;
myMap[1] = "One";
myMap[2] = "Two";
myMap[3] = "Three";
int key = 2;
std::string value = myMap.at(key);
std::cout << "Value for key " << key << " is " << value << std::endl;
return 0;
}
上記の例では、整数型のkeyと文字列型のvalueを持つmapオブジェクトであるmyMapを作成しました。その後、下記の操作子[]を使用して、いくつかのキーと値のペアをmapに格納しました。
次に、整数型の変数keyを定義し、myMap.at(key)を使用してそのキーに対応する値を取得します。最後に、結果を標準出力ストリームに出力します。
結果は出力されます。
Value for key 2 is Two
指定されたキーがマップに存在しない場合、at()関数を使うとstd::out_of_range例外が投げられますので、at()関数を使う前に、count()関数やfind()関数を使って指定されたキーがマップに存在するかどうかをチェックすることがお勧めです。