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

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

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

概述

equal_range()函数是STL中set数据结构中的一个函数,用于查找一个范围内的元素。这个范围由两个迭代器定义,返回一个pair,包含了满足条件的元素的起始迭代器和结束迭代器。

std::pair<std::set<int>::iterator, std::set<int>::iterator> equal_range (const value_type& val) const;
参数

val:要查找的元素。

返回值

pair对象,其中包含了范围的开始和结束迭代器。

示例
#include <iostream>
#include <set>
using namespace std;
int main() {
    set<int> myset;
    for(int i = 1; i <= 5; i++) myset.insert(i * 10);    
    pair<set<int>::iterator, set<int>::iterator> ret;
    ret = myset.equal_range(30);
    cout << "lower bound points to: " << *ret.first << '\n'; //lower bound points to: 30
    cout << "upper bound points to: " << *ret.second << '\n'; //upper bound points to: 40
}

在这个示例中,我们定义了一个set对象,包含了10, 20, 30, 40, 50这些元素。然后我们使用equal_range()函数查找30这个元素,它返回的pair对象包含了起始和结束迭代器:

lower bound points to: 30
upper bound points to: 40

此时,lower_bound指向30upper_bound指向40。这个范围包含了所有值为30的元素。

注意事项

equal_range()函数的查找范围是左闭右闭的。也就是说,返回的迭代器指向的元素都是符合条件的,包含了val这个元素。