在学习了几年 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 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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)