C++语法之unordered_map的4种遍历方式 发表于 2023-11-13 分类于 C++ 阅读次数: C++语法中关于unordered_map的4种遍历方式,防止遗忘 [TOC] 头文件1#include<unordered_map> 方式一:值传递遍历12345678for(pair<int, int> kv: map){ cout << kv.first << kv.second << endl;}/*使用auto*/for(auto kv: map){ cout << kv.first << kv.second << endl;} 方式二:引用传递遍历 注意:要加const 12345678910111213for(const pair<int, int>& kv: map){ cout << kv.first << kv.second << endl;}/*const加里面也是可以的*/for(pair<const int, int>& kv: map){ cout << kv.first << kv.second << endl;}/*使用auto*/for(auto &kv: map){ cout << kv.first << kv.second << endl;} 方式三:使用迭代器遍历12345678for(unordered_map<int, int>::iterator it = map.begin(); it != map.end(); it++){ cout << it->first << it->second << endl;}/*使用auto*/for(auto it = map.begin(); it != map.end(); it++){ cout << it->first << it->second <<endl;} 方式四:结构化绑定(c++17特性)12345678910111213141516171819/*值传递*/for(auto [k, v]: map){ cout << k << v << endl;}/*引用传递*/for(auto [k, v]: map){ cout << k << v << endl;}/*其中,如果只想使用键,值可以用_代替*/for(auto &[k, _]: map){ cout << k << endl;}/*同理,如果指向只用值,键可以用_代替*/for(auto &[_, v]: map){ cout << v << endl;}