首页 >后端开发 >C++ >如何有效地从 std::map 中提取键和值?

如何有效地从 std::map 中提取键和值?

Patricia Arquette
Patricia Arquette原创
2024-11-29 16:48:12886浏览

How to Efficiently Extract Keys and Values from a std::map?

如何轻松地从 std::map 检索键和值

您使用函子和标准算法的方法是实用的,并且展示了灵活性。但是,出于可读性和维护目的,您可以考虑这些替代解决方案。

使用迭代器进行向量化

要将键检索到向量中,请考虑以下事项:

std::map<int, int> m;
std::vector<int> keys, values;

for (auto& [key, value] : m) {
  keys.push_back(key);
  values.push_back(value);
}

利用提升迭代器

如果您正在使用 Boost,请利用其强大的迭代器来实现更简洁的方法:

boost::map<int, int> m;
std::vector<int> keys;

for (boost::tie(it, ignore) = boost::begin(m); it != boost::end(m); ++it) {
  keys.push_back(*it);
}

进一步改进

您的问题指出 std::map 缺乏用于检索键或值的专用成员函数。这可能是出于性能考虑,因为这些操作涉及潜在复杂的底层数据结构。

最终,这些方法的选择取决于您的特定上下文和偏好。每种方法都有其优点和可读性问题。

以上是如何有效地从 std::map 中提取键和值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn