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

C++ Searching object in nested pair of an std::set

我有一个类型的 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
        });

您需要使用 . 而不是 ->,因为 elem 是对 pair.

的引用,而不是指针
auto it = std::find_if(X.begin(), X.end(), [value](auto& elem) {
  return elem.second.first == value;
});