gpt4 book ai didi

c++ - 如何像在 std::set 中一样在 std::map 中找到最小值/最大值?

转载 作者:太空狗 更新时间:2023-10-29 20:21:53 53 4
gpt4 key购买 nike

由于 set 和 map 都是有序容器,对于 std::map 来说,min 和 max 能否像 std::set 那样在 0(1) 时间内找到?

// for std::set
// std::set<int> s;
auto min = *s.begin();

auto max = *s.rbegin();

如何从 std::map 获取 O(1) 中的最大值和最小值?这里的其他问题似乎建议遍历 map ,但我们不能使用 std::map 的有序属性来更快地获得结果吗?

最佳答案

首先从迭代器中取消对键的引用,如下所示:

// for std::map<int,string> s
auto minKey = s.begin()->first;
auto maxKey = s.rbegin()->first;

这仅适用于键,不适用于值,因为映射仅根据键进行排序。

关于c++ - 如何像在 std::set 中一样在 std::map 中找到最小值/最大值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40900530/

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