在结构集中查找项目

HB1*_*963 0 c++ c++11

我有一个结构集.

struct Neighbour
{
int  ID;
int  Left;
int  Right;
}

set<NodeNeighbour>NextDoor;
Run Code Online (Sandbox Code Playgroud)

如何在此集中找到ID =='要搜索的数字'?

使用straigth前向集,可以使用set.find()简单地找到一个项目.搜索一组结构有什么类似的东西吗?

Thx提前

Sir*_*ius 6

您可以使用std::find_if,它使用一元谓词函数:

auto result = std::find_if(std::begin(NextDoor), std::end(NextDoor), [numberToSearch] (const auto & n) {
    return n.ID == numberToSearch;
});
Run Code Online (Sandbox Code Playgroud)

result 将是一个指向找到的第一个元素的迭代器.

有关更多详细信息和示例,请参见http://en.cppreference.com/w/cpp/algorithm/find.