📅  最后修改于: 2023-12-03 14:39:51.668000             🧑  作者: Mango
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
指向30
,upper_bound
指向40
。这个范围包含了所有值为30
的元素。
equal_range()
函数的查找范围是左闭右闭的。也就是说,返回的迭代器指向的元素都是符合条件的,包含了val
这个元素。