首页 > 解决方案 > 如何在 C++ 中对向量的第二个元素执行 lower_bound 操作?

问题描述

可以将所有元素复制v[i].second到一个新向量,然后对lower_bound新向量进行操作,因为我们正在搜索的特定值的位置在两个向量中是相同的,所以这样做是合理的。但是如果向量有很多元素,那么复制的成本就会很高。

所以,如果可能的话,我想知道lower_bound在一种容器上执行操作的语法vector<pair<int,int>>(特别是只在向量的第二个元素上)。

标签: c++searchvector

解决方案


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;
  });

这假设向量按 排序element.second


推荐阅读