C++ STL中multiset equal_range()函数

C++ STL中multiset equal_range()函数

C++ STL中的 multiset::equal_range() 是一个内置函数,它返回一对迭代器。这对是指包括在容器中其键等于k的所有元素的范围。下限将是元素本身,上限将指向键k的下一个元素。如果没有与键K匹配的元素,则返回的范围的长度为0,两个迭代器都指向容器内比k大的第一个元素(key_comp)。如果键超过了set容器中的最大元素,则返回一个指向multiset容器中最后一个元素的迭代器。

语法:

multiset_name.equal_range(key)

参数: 该函数接受一个强制参数key,该参数指定要返回multiset容器中键的范围。

返回值: 该函数返回一对迭代器

下面的程序说明了上述函数。

程序1:

// CPP程序演示
// multiset::equal_range()函数
#include
using namespace std;
int main()
{
  
    multiset s;
  
    // 插入元素
    s.insert(1);
    s.insert(6);
    s.insert(2);
    s.insert(5);
    s.insert(3);
    s.insert(3);
    s.insert(5);
    s.insert(3);
  
    // 打印multiset元素
    cout << "The multiset elements are: ";
    for(auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
  
    // 函数返回下限和上限
    auto it = s.equal_range(3);
    cout << "\nThe lower bound of 3 is " << *it.first;
    cout << "\nThe upper bound of 3 is " << *it.second;
  
    // 函数返回最后一个元素
    it = s.equal_range(10);
    cout << "\nThe lower bound of 10 is " << *it.first;
    cout << "\nThe upper bound of 10 is " << *it.second;
  
    // 函数返回大于0的元素所在的范围
    it = s.equal_range(0);
    cout << "\nThe lower bound of 0 is " << *it.first;
    cout << "\nThe upper bound of 0 is " << *it.second;
  
    return 0;
}
The multiset elements are: 1 2 3 3 3 5 5 6 
The lower bound of 3 is 3
The upper bound of 3 is 5
The lower bound of 10 is 8
The upper bound of 10 is 8
The lower bound of 0 is 1
The upper bound of 0 is 1

程序2:

// CPP程序演示
// multiset::equal_range()函数
#include
using namespace std;
int main()
{
  
    multiset s;
  
    // 插入元素
    s.insert(1);
    s.insert(6);
    s.insert(2);
    s.insert(5);
    s.insert(3);
    s.insert(3);
    s.insert(5);
    s.insert(3);
  
    // 打印multiset元素
    cout << "The multiset elements are: ";
    for(auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
  
    // 函数返回下限和上限
    auto it = s.equal_range(3);
    cout << "\nThe lower bound of 3 is " << *it.first;
    cout << "\nThe upper bound of 3 is " << *it.second;
  
    s.erase(it.first, it.second);
  
    // 删除范围后打印multiset元素
    cout << "\nThe multiset elements are: ";
    for(auto it = s.begin(); it != s.end(); it++)
        cout << *it << " ";
  
    return 0;
}
多重集合元素为:1 2 3 3 3 5 5 6
3的下界为3
3的上界为5
多重集合元素为:1 2 5 5 6

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程