嵌套 std::map 的输出存在问题

Issue with output for nested std::map

本文关键字:存在 问题 输出 map std 嵌套      更新时间:2023-10-16
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";
}

这给了我一个错误

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