如何在多集中找到比元素中的特定元素更大或更小的元素? 例如,我在multiset中插入了一些元素,现在我想找到比我已经插入的元素更小且更大的元素,我该怎么做?
答案 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;
}