C ++在std :: set的嵌套对中搜索对象

时间:2017-04-07 00:44:26

标签: c++ stl set std-pair

我有一个类型的STL集:

std::set< std::pair< double, std::pair< unsigned, vector< unsigned > > > > X

我知道我可以通过更改我的数据结构使事情更简单,但这对我来说不是一个选择。

如何仅在我的集合中内部对的第一个元素中搜索unsigned类型的元素?

我尝试了以下方法,但无效。

auto it = std::find_if(X.begin(), X.end(), [value_searching]
(const std::pair<double, std::pair< unsigned, vector< unsigned > >& elem) {
return elem->second.first == value_searching
        });

1 个答案:

答案 0 :(得分:2)

您需要使用.而不是->,因为elempair的引用,而不是指针。

auto it = std::find_if(X.begin(), X.end(), [value](auto& elem) {
  return elem.second.first == value;
});