嵌套std :: map的输出问题

时间:2015-12-22 00:44:45

标签: c++

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";
}

这给了我一个错误

1 个答案:

答案 0 :(得分:2)

iter.secondstd::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";