std::map<int, std::map<std::string, std::pair<int, std::string>>>mfvs;
我想输出std :: string作为内部地图的第一部分。
for (const auto& iter :mfvs)
{
std::cout << iter.second.first << "\n";
}
这给了我一个错误
答案 0 :(得分:2)
iter.second
是std::map
,因此没有first
。
如果要打印第一个(使用最低键)元素(并且您确定它存在),请执行以下操作:
std::cout << iter.second.begin()->first << "\n";
.begin()
将返回map
的第一个元素,->first
将获得其密钥。如果你想打印它的值,可以使用以下代码中的某些内容
auto firstElem = iter.second.begin();
std::cout << firstElem->first << ": " << firstElem->second.first << ", " << firstElem->second.second << "\n";