迭代 C 映射中的键

新手上路,请多包涵

有没有办法遍历键,而不是 C++ 映射对?

原文由 Bogdan Balan 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 540
2 个回答

如果您确实需要隐藏“真实”迭代器返回的值(例如,因为您想将键迭代器与标准算法一起使用,以便它们对键而不是对进行操作),那么看看 Boost 的 变换迭代器

[提示:在查看新类的 Boost 文档时,请先阅读最后的“示例”。然后,您就有机会弄清楚其余部分到底在说什么:-)]

原文由 Steve Jessop 发布,翻译遵循 CC BY-SA 2.5 许可协议

使用 C++20,我们可以访问 ranges 库,它有一个很好的解决方案: std::views::keys

 #include <ranges>

//...

std::map<int, int> myMap = {{1,2},{3,4},{5,6}};
auto keys = std::views::keys(myMap);
for(auto key : keys) {
    std::cout << key << std::endl;
}

自己尝试一下: https ://godbolt.org/z/heeWv4Gh6

原文由 iamkroot 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏