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

如何有效地将 std::map 中的键和值提取到向量中?

Patricia Arquette
Patricia Arquette原创
2024-12-11 02:31:10283浏览

How Can I Efficiently Extract Keys and Values from a std::map into Vectors?

从 std::map 检索键和值到向量

使用 std::map 时,通常需要单独处理键或值。虽然定义自定义函子可以实现此任务,但还有更有效的方法可用。

使用迭代器:

最直接的方法是使用 std::map 迭代器:

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

for (std::map<int, int>::iterator it = m.begin(); it != m.end(); ++it) {
    keys.push_back(it->first);
    values.push_back(it->second);
    std::cout << "Key: " << it->first << std::endl;
    std::cout << "Value: " << it->second << std::endl;
}

使用升压库:

如果您使用 Boost 库,您可以利用 BOOST_FOREACH 宏来更加简单:

std::map<int, int> m;
std::vector<int> v;

BOOST_FOREACH(const std::pair<int, int>& me, m) {
    v.push_back(me.first);
    std::cout << me.first << "\n";
}

通过利用这些方法,您可以有效地提取和处理将 std::map 中的键或值映射到向量中,而不需要复杂的函子。

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

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