gpt4 book ai didi

C++ 获取 map 的关键字

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:45 25 4
gpt4 key购买 nike

据我查看 C++ 引用资料,没有函数返回包含 map 的所有关键字的 vector (或类似 vector )。为什么会这样?这不是一个非常重要的功能,但有时它会很有用。 (我不太了解key_comp函数,但这似乎不是我要找的)

为了完整起见,这里有一些功能可以满足我的要求:

template<typename key_t, typename value_t>
std::vector<key_t> getKeywords(const std::map<key_t, value_t>& m){
std::vector<key_t> keywords;
for(const auto& it: m){
keywords.push_back(it.first);
}
return keywords;
}

最佳答案

这与 std::list 迭代器没有 operator+ 的原因相同。

该标准尽量不鼓励低效操作,而是让您为工作选择合适的容器。

创建所有 map 键的 vector 并非易事,因为这样的 vector 不会与 map 一起在内部维护。

您当然可以根据需要创建它,正如您已经展示的那样。但该标准希望您知道您可能应该寻找另一种方法。

例如,如果您只想遍历键,则可以遍历整个映射并仅使用每个结果对的第一部分。

此外,标准库旨在为您提供构建 block ,而不是为了适应所有可能的用例。

关于C++ 获取 map 的关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57377679/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com