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函數前需要確保容器已經按照升序排好序,否則可能無法得到正確的結果。