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()関数を使って指定されたキーがマップに存在するかどうかをチェックすることがお勧めです。

bannerAds