如何在std :: Map中找到std :: set中的映射中的最小/最大值



由于设置和映射都是订购的容器,可以在0(1)的std :: map中找到最小和最大值,例如std :: set?

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

如何从std :: Map中获得O(1)中的最大和最小值?这里的其他问题似乎建议通过地图进行迭代,但是我们不能使用STD :: MAP的有序适当的速度来更快地获得结果吗?

首先从迭代器中删除键,如这样:

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

这仅适用于键,而不是值,因为地图仅在其键上排序。

相关内容

  • 没有找到相关文章

最新更新