Как выполнить операцию lower_bound над вторыми элементами вектора пар в C ++? - PullRequest
1 голос
/ 26 мая 2019

Можно скопировать все элементы v[i].second в новый вектор, а затем выполнить операцию lower_bound с новым вектором, и поскольку положение конкретного значения, которое мы ищем, будет одинаковым в обоих векторах, поэтому разумно сделать. Но если вектор содержит много элементов, копирование будет дорогостоящим.

Итак, я хочу знать синтаксис для выполнения операции lower_bound над контейнером типа vector<pair<int,int>>, если это возможно (особенно только над вторыми элементами вектора).

1 Ответ

4 голосов
/ 26 мая 2019
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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...