c++中unordered_map的条目类型是什么

What's the type of an entry of an unordered_map in c++

我有一个数据结构:

unordered_map<pair<string, string>, unordered_map<pair<int, int>, double>> myMap;

我使用 for 循环获取它的条目,并将此条目用作我的函数的输入:

for (auto& map : myMap) { 
  auto myReturn = myFunc(map);
}

但是我在写myFunc的时候,不知道参数的类型是什么,是pair吗?

string myFunc(pair<pair<string, string>, unordered_map<pair<int, int>, double>> map)

如您的示例所示迭代 unordered_map 将产生 unordered_map::value_type,即 std::pair<const Key, Value>。所以在你的例子中,变量 map 的类型是

std::pair<const pair<string, string>, unordered_map<pair<int, int>, double>>

您无法调用 myFunc,因为 myFunc 的参数类型中 pair 的第一个元素必须是 const 合格的。