C++的equal_range函数用于在已排序的容器中查找某个值的范围。它返回一个pair对象,包含了两个迭代器,分别指向第一个大于等于该值的元素和最后一个小于该值的元素的后一个位置。
以下是一个使用equal_range函数的示例:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec = {1, 2, 3, 3, 3, 4, 5, 6};
// 使用equal_range查找元素3的范围
auto range = std::equal_range(vec.begin(), vec.end(), 3);
// 输出查找到的范围
std::cout << "Lower bound: " << *range.first << std::endl;
std::cout << "Upper bound: " << *range.second << std::endl;
return 0;
}
在上面的示例中,equal_range函数会在vec容器中查找值为3的元素的范围,并将结果存储在range中。然后我们通过输出range.first和range.second来获取找到的范围的首尾元素。
请注意,使用equal_range函数前需要确保容器已经按照升序排好序,否则可能无法得到正确的结果。