有没有办法遍历键,而不是 C++ 映射对?
原文由 Bogdan Balan 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 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 许可协议
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
2 回答3.2k 阅读✓ 已解决
1 回答3.2k 阅读✓ 已解决
1 回答2.7k 阅读✓ 已解决
3 回答3.4k 阅读
1 回答1.6k 阅读✓ 已解决
如果您确实需要隐藏“真实”迭代器返回的值(例如,因为您想将键迭代器与标准算法一起使用,以便它们对键而不是对进行操作),那么看看 Boost 的 变换迭代器。
[提示:在查看新类的 Boost 文档时,请先阅读最后的“示例”。然后,您就有机会弄清楚其余部分到底在说什么:-)]