c++ - 迭代器适配器仅迭代 map 中的值?

标签 c++ maps iterator adapter

在做了几年 C# 和最近的 Objective C 之后,我才刚刚回到 C++。

我之前做过的一件事是为 std::map 滚动我自己的迭代器适配器,它将只引用值部分,而不是键值对。这是很常见和很自然的事情。 C# 为这个工具提供了它的 Dictionary 类的 Keys 和 Values 属性。 Objective-C 的 NSDictionary 同样具有 allKeys 和 allValues。

自从我“离开”以来,Boost 已经获得了 Range 和 ForEach 库,我现在正在广泛使用它们。我想知道两者之间是否有一些设施可以做同样的事情,但我找不到任何东西。

我正在考虑使用 Boost 的迭代器适配器来解决问题,但在我走这条路之前,我想我想在这里问一下是否有人知道 Boost 中的这种设施,或者其他现成的地方?

最佳答案

替换之前的答案,以防其他人像我一样发现这个。从 boost 1.43 开始,提供了一些常用的范围适配器。在这种情况下,您需要 boost::adaptors::map_values。相关示例: http://www.boost.org/doc/libs/1_46_0/libs/range/doc/html/range/reference/adaptors/reference/map_values.html#range.reference.adaptors.reference.map_values.map_values_example

关于c++ - 迭代器适配器仅迭代 map 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/259240/

相关文章:

c++ - 一个类(class)的规模是多少?

c++ - 在 Yosemite 上安装 wx-widgets 让我发疯

ios - 在当前区域的 map 上显示图钉

c# - 有什么方法可以使 yield created Iterator 在出现异常时继续到下一个项目?

rust - 使用 `flat_map`在字段上为结构片创建迭代器

c++ - 最优锁文件方法

c++ - Visual c++ 6.0 应用程序大小大于 visual studio 2010 应用程序大小

android - 最紧凑的 map 文件格式?

python - 在 GeoDjango Admin 中禁用 Openlayers map

java - 在 TreeSet 上使用迭代器