use lower bound in pair vector
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<std::pair<int, int>> pairs = {{1, 5}, {2, 3}, {4, 7}};
int target = 3;
auto it = std::lower_bound(pairs.begin(), pairs.end(), std::make_pair(target, 0));
if (it != pairs.end() && it->first == target) {
std::cout << "Found at index: " << std::distance(pairs.begin(), it) << std::endl;
} else {
std::cout << "Not found" << std::endl;
}
return 0;
}