如何轻松地从 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中文网其他相关文章!