多集如何工作以及如何在multiset中找到最小元素

时间:2014-10-20 06:40:16

标签: c++ data-structures stl multiset

当我们在多个集合中插入元素时,它们是按排序顺序插入的。

我怎样才能找到mutiset的最小元素?

如何在mutiset中访问ith元素?

有人可以解释multiset如何工作以及如何在其中存储元素?

提前致谢。

1 个答案:

答案 0 :(得分:2)

这是一个始终有效的解决方案(无论订购方案如何):

   std::multiset<int> m;
   //do something with m
   std::cout<<*std::min_element(m.begin(),m.end())<<std::endl;

那应该是O(n),因此它不会影响multiset存储方案已经排序的性质。

访问&#34; i-th&#34;元素:

std::cout<<*std::next(m.begin(),i-1)<<std::endl;

但是,&#34; i-th element&#34;是什么意思?由您的订购方案决定。


好的,当您的订购方案由std::less - 标准案例 - 然后确实

m.begin();

为您提供最小元素。您可以阅读here