C++におけるmapの値を走査する方法は何ですか?
C++では、マップの値を反復処理して割り当てるためにイテレータを使用することができます。具体的な手順は次のとおりです:
- 最初、マップを走査するためのイテレータ変数を定義します。 マップの開始位置と終了位置のイテレータを取得するためにbegin()やend()関数を使用することができます。
- std::map<KeyType, ValueType> のイテレータ it;
- forループを使用して、マップを走査し、イテレータ変数itを使用して各キーと値のペアを取得します。
- mapNameの先頭から末尾までループを回す。キーと値を取り出して、それぞれ変数keyとvalueに格納する。 // assign operationを行う。
- ループ内では、キーと値のペアに値を割り当てることができます。たとえば、it->firstを使用してキーにアクセスし、it->secondを使用して値にアクセスできます。
- 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