C++ 如何在无序地图上迭代';s特定键';s的价值观?

C++ 如何在无序地图上迭代';s特定键';s的价值观?,c++,vector,unordered-map,C++,Vector,Unordered Map,我有一张无序的地图,上面有一个字符串和一个字符串向量。我想转到一个特定的键并迭代它的所有值 例如,转到键400并在1、2和3上迭代 { 400 -> [1,2,3], 200 -> [], 13 -> [10,30] } std::无序映射mymap; myKey=400; 用于(自动元素:mymap){ if(elem.first==myKey){ 对于(auto elem2:elem.first.size()){ //在这里做事 } } } 这样做不需要两个循环。具体来说,查找键的外部循环

我有一张无序的地图,上面有一个字符串和一个字符串向量。我想转到一个特定的键并迭代它的所有值

例如,转到键400并在1、2和3上迭代

{
400 -> [1,2,3],
200 -> [],
13 -> [10,30]
}
std::无序映射mymap;
myKey=400;
用于(自动元素:mymap){
if(elem.first==myKey){
对于(auto elem2:elem.first.size()){
//在这里做事
}
}
}

这样做不需要两个循环。具体来说,查找键的外部循环是不必要的。如果您知道密钥存在,只需执行以下操作:

for (auto const & item : mymap["400"])
  // ...
如果不确定密钥是否存在,可以编写:

if (auto it = mymap.find("400");
    it != mymap.end())
  for (auto const & item : it->second)
    // ...
或者从C++20开始,只需:

if (mymap.contains("400"))
  for (auto const & item : mymap["400"])
    // ...
if (mymap.contains("400"))
  for (auto const & item : mymap["400"])
    // ...