📜  C++ STL-Multiset.equal_range()函数(1)

📅  最后修改于: 2023-12-03 14:39:51.396000             🧑  作者: Mango

C++ STL-Multiset.equal_range()函数

在 C++ STL 中,multiset 是一个允许存储多个相同元素的容器。equal_range() 函数可以用来查找指定元素的区间位置。

函数原型
pair<const_iterator,const_iterator> equal_range( const Key& key ) const;
参数说明
  • key:查找的元素键值。
返回值
  • 返回的是一个 pair 对象,其中 first 成员是 multiset 中第一个大于或等于 key 的元素(即区间左端点)的迭代器,second 成员是第一个大于 key 元素(即区间右端点)的迭代器。
代码示例
#include <iostream>
#include <set>

using namespace std;

int main()
{
    multiset<int> myset;

    myset.insert(40);
    myset.insert(30);
    myset.insert(60);
    myset.insert(20);
    myset.insert(10);
    myset.insert(50);
    myset.insert(30);
    myset.insert(40);

    auto range = myset.equal_range(30);

    cout << "key range: ";

    for (auto i = range.first; i != range.second; ++i)
        cout << *i << ' ';

    cout << endl;

    return 0;
}

输出结果为:

key range: 30 30

这里我们定义一个 multiset 对象 myset,然后向其中依次添加了一些整型元素。接着使用 equal_range() 函数找到键值等于 30 的元素并输出。由于我们先后向 multiset 中添加了两个键值为 30 的元素,因此输出结果也会有两个元素。