c++ - 访问 multimap 值

标签 c++ stl stdmap

假设我创建一个 multimap 作为

std::multimap<int, string> mm;
mm[1] = "name1";
mm[1] = "name2";

mm[2] = "name3"
mm[2] = "name4"

在这里,我确信每个键都有两个值,值的顺序很重要,因为 name1 在 mm[1] 中排在第一位,name2 在 mm[1] 中排在第二位。

谁能建议在不使用计数的情况下访问 mm 值的方法,例如 mm[1]{first value}。

最佳答案

auto range = mm.equal_range(1);
std::for_each(range.first, range.second,
[](const std::pair<const int, std::string>& p)
{
   std::cout << p.second << std::endl;
});

只是更正:multimap 没有operator []。请改用 insert

关于c++ - 访问 multimap 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15106319/

相关文章:

c++ - 指针c++解释

c++ - 使成员函数静态化会使程序无法编译。不知道为什么

c++ - 为什么 std::unordered_map 有保留方法?

c++模板化 map ,不同类型参数的通用接口(interface)

c++ - 元素看起来像在 map 中,但它不在 map 中

c++ - 初学者 C "=="总是评估为 false

c++ - 为什么 C++ map.insert() 不覆盖

c++ - 使用指针的二次方程问题

c++ - STL Set inside Map ,奇怪的段错误和Valgrind分析

c++ - 适用于 STL 容器的简单 C++ 模板