在C++中,可以使用STL(标准模板库)的lower_bound函数来对向量对的第二个元素执行lower_bound操作。
lower_bound函数的作用是在有序的容器(如向量、数组等)中查找第一个大于或等于给定值的元素,并返回指向该元素的迭代器。lower_bound函数的用法如下:
#include <algorithm>
#include <vector>
bool compare(std::pair<int, int> a, std::pair<int, int> b) {
return a.second < b.second;
}
int main() {
std::vector<std::pair<int, int>> vec = {{1, 5}, {2, 3}, {3, 2}, {4, 7}, {5, 4}};
std::sort(vec.begin(), vec.end(), compare);
int target = 4;
auto it = std::lower_bound(vec.begin(), vec.end(), target, compare);
if (it != vec.end()) {
// 找到了第一个大于等于给定值的元素
int index = std::distance(vec.begin(), it);
std::cout << "Found at index: " << index << std::endl;
std::cout << "Element: (" << vec[index].first << ", " << vec[index].second << ")" << std::endl;
} else {
// 没有找到大于等于给定值的元素
std::cout << "Not found!" << std::endl;
}
return 0;
}
上述代码中,首先定义了一个名为compare的比较函数,用于按照向量对的第二个元素进行比较。然后将向量按照compare函数的规则进行排序。接着,定义了目标值target,并使用lower_bound函数查找第一个大于等于target的元素。如果找到了该元素,则输出其索引和数值;否则,输出未找到的提示信息。
该代码中的向量vec包含了多个向量对,每个向量对都包含两个整数。lower_bound函数会按照向量对的第二个元素进行查找。
这是一个C++中使用lower_bound函数执行向量对第二个元素的lower_bound操作的例子。如果您想了解更多关于C++的lower_bound函数的信息,请参考以下链接:
领取专属 10元无门槛券
手把手带您无忧上云