在multiset中只是更大的元素或更小的元素

时间:2017-02-28 06:25:50

标签: c++ multiset

如何在多集中找到比元素中的特定元素更大或更小的元素? 例如,我在multiset中插入了一些元素,现在我想找到比我已经插入的元素更小且更大的元素,我该怎么做?

1 个答案:

答案 0 :(得分:0)

您可以将lower_bound和upper_bound用作 -

// multiset::lower_bound/upper_bound
#include <iostream>
#include <set>

using namespace std;

int main ()
{
  std::multiset<int> mymultiset;
  std::multiset<int>::iterator itlow,itup;

  for (int i=1; i<8; i++) mymultiset.insert(i*10); 
  itlow = mymultiset.lower_bound (30);             //       ^

  std::cout << "mymultiset less then 30:";
  for (auto it=mymultiset.begin(); it!=itlow; ++it)
    std::cout << ' ' << *it;

  cout<<endl;

  itup = mymultiset.upper_bound (40);              //             ^

  std::cout << "mymultiset greater then 40:";
  for (; itup!=mymultiset.end(); ++itup)
    std::cout << ' ' << *itup;
    cout<<endl;

  return 0;
}