使用std :: find

时间:2016-07-20 18:54:55

标签: c++

在给定的对矢量

static std::vector<std::pair<int,int>> v

当我使用std :: find

搜索向量时,如何忽略其中一个值
std::find(v.begin(), v.end(), std::make_pair(first int, /*ignored value*/)) - v.begin();

1 个答案:

答案 0 :(得分:2)

使用更好的算法:std::find_if

auto it = std::find_if(v.begin(), v.end(), [first](const std::pair<int, int>& elem){
    return elem.first == first;
});

或来自range-v3find的另一种风格:

auto it = ranges::find(v,
    first,                      // the value
    &std::pair<int, int>::first // the projection
    );