C++におけるmapの値を走査する方法は何ですか?

C++では、マップの値を反復処理して割り当てるためにイテレータを使用することができます。具体的な手順は次のとおりです:

  1. 最初、マップを走査するためのイテレータ変数を定義します。 マップの開始位置と終了位置のイテレータを取得するためにbegin()やend()関数を使用することができます。
  2. std::map<KeyType, ValueType> のイテレータ it;
  3. forループを使用して、マップを走査し、イテレータ変数itを使用して各キーと値のペアを取得します。
  4. mapNameの先頭から末尾までループを回す。キーと値を取り出して、それぞれ変数keyとvalueに格納する。 // assign operationを行う。
  5. ループ内では、キーと値のペアに値を割り当てることができます。たとえば、it->firstを使用してキーにアクセスし、it->secondを使用して値にアクセスできます。
  6. it->secondにnewValueを代入します。

サンプルコードは以下の通りです:

#include <iostream>
#include <map>

int main() {
    std::map<int, int> myMap;

    // 向map中插入一些键值对
    myMap.insert(std::make_pair(1, 10));
    myMap.insert(std::make_pair(2, 20));
    myMap.insert(std::make_pair(3, 30));

    // 遍历map并赋值
    std::map<int, int>::iterator it;
    for(it = myMap.begin(); it != myMap.end(); ++it) {
        int key = it->first;
        int value = it->second;
        // 进行赋值操作
        it->second = value * 2;
    }

    // 打印更新后的map
    for(it = myMap.begin(); it != myMap.end(); ++it) {
        std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
    }

    return 0;
}

結果を出力する:

Key: 1, Value: 20
Key: 2, Value: 40
Key: 3, Value: 60
bannerAds