📜  C++ STL中的unordered_multiset equal_range()函数(1)

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

C++ STL中的unordered_multiset equal_range()函数

简介

在C++的STL库中,unordered_multiset是一个无序的容器,它可以存储多个相同的元素。equal_range()是unordered_multiset类中的一个成员函数,它用于查找与指定值相等的元素的范围。

unordered_multiset的equal_range()函数返回一个pair类型的值,其中包含两个迭代器,表示与指定值相等的元素的范围。第一个迭代器指向范围中的第一个元素,第二个迭代器指向范围中的最后一个元素的下一个位置。

语法

unordered_multiset的equal_range()函数的语法如下:

pair<iterator, iterator> equal_range(const key_type& key);
  • key_type: 表示要查找的元素的类型。
  • key: 要查找的元素。
示例

下面是一个使用unordered_multiset的equal_range()函数的示例:

#include <iostream>
#include <unordered_set>

int main() {
    std::unordered_multiset<int> mySet = {1, 2, 3, 2, 4, 5, 2};

    // 使用equal_range()函数查找元素2的范围
    auto range = mySet.equal_range(2);

    // 输出范围内的元素
    std::cout << "Elements with value 2 in the set: ";
    for (auto it = range.first; it != range.second; ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出结果为:

Elements with value 2 in the set: 2 2 2
注意事项
  • unordered_multiset是一个无序的容器,元素的顺序不确定,因此equal_range()函数返回的范围内的元素也是无序的。
  • 如果unordered_multiset中不存在与指定值相等的元素,equal_range()函数将返回一个范围,其中第一个迭代器和第二个迭代器的值相等,指向unordered_multiset的end()位置。