我有一个STL集合类型:C++嵌套对性病的搜索对象::设为
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'既不是 - 它是一对''。 – aschepler
这种情况下的替代方法是什么? @aschepler –
这种复杂的结构在现实生活中从来没有任何意义......它使代码难以维护,因为您有多个第一和第二个......此外,它可能不如您想要的那样高效......您为什么如果您不使用密钥查找项目,请使用一套。 – Phil1970