C++ STL中unordered_multiset equal_range()函数
unordered_multiset :: equal_range() 是C++ STL中的内置函数,它返回所有元素都等于给定值的范围。它返回一对迭代器,其中第一个是指向范围下界的迭代器,第二个是指向范围上界的迭代器。如果容器中没有元素等于给定值,则它返回一对,其中下界和上界都指向容器末尾的位置。
语法:
unordered_multiset_name.equal_range(value)
参数: 该函数接受一个要返回的元素值val的范围。
返回值: 它返回一对迭代器。
下面的程序说明了上述函数:
程序1:
//C ++程序,说明
//unordered_multiset :: equal_range()函数
#include
using namespace std;
int main()
{
// 声明
unordered_multiset sample;
// 插入元素
sample.insert(100);
sample.insert(100);
sample.insert(100);
sample.insert(200);
sample.insert(500);
sample.insert(500);
sample.insert(600);
// 迭代器对,指向包括500的范围,并通过在范围内迭代打印
auto itr = sample.equal_range(500);
for (auto it = itr.first; it != itr.second; it++) {
cout << *it << " ";
}
cout << endl;
// 迭代器对,指向包括100的范围,并通过在范围内迭代打印
itr = sample.equal_range(100);
for (auto it = itr.first; it != itr.second; it++) {
cout << *it << " ";
}
return 0;
}
500 500
100 100 100
程序2:
//C++程序,说明
//unordered_multiset :: equal_range()函数
#include
using namespace std;
int main()
{
// 声明
unordered_multiset sample;
// 插入元素
sample.insert('a');
sample.insert('a');
sample.insert('b');
sample.insert('c');
sample.insert('d');
sample.insert('d');
sample.insert('d');
// 迭代器对,指向包括'a'的范围,并通过在范围内迭代打印
auto itr = sample.equal_range('a');
for (auto it = itr.first; it != itr.second; it++) {
cout << *it << " ";
}
cout << endl;
// 迭代器对,指向包括'd'的范围,并通过在范围内迭代打印
itr = sample.equal_range('d');
for (auto it = itr.first; it != itr.second; it++) {
cout << *it << " ";
}
return 0;
}
a a
d d d