一个人可以将所有v[i].second
元素复制到一个新向量,然后对新向量执行lower_bound
操作,因为我们要搜索的特定值的位置在两个向量中都相同向量,所以这样做是合理的。但是,如果向量有很多元素,那么复制将很昂贵。
因此,我想知道在可能的情况下对lower_bound
类型的容器执行vector<pair<int,int>>
操作的语法(特别是仅在向量的第二个元素上)。
答案 0 :(得分:4)
sqlite3 gem
这假定向量按int myValue = 42; // value to search for.
std::lower_bound(myVector.begin(), myVector.end(), myValue,
[](const pair<int,int>& a, int b) {
return a.second < b;
});
排序。