Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在结构的集合中查找项_C++_C++11 - Fatal编程技术网

C++ 在结构的集合中查找项

C++ 在结构的集合中查找项,c++,c++11,C++,C++11,我有一套结构 struct Neighbour { int ID; int Left; int Right; } set<NodeNeighbour>NextDoor; struct邻居 { int-ID; int左; 国际权利; } setNextDoor; 如何在此集合中查找项目WARE ID=='number to search' 使用straigth forward set,只需使用set.find()即可找到项目。 搜索一组结构有什么相似之处吗 Thx提前不要使

我有一套结构

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

set<NodeNeighbour>NextDoor;
struct邻居
{
int-ID;
int左;
国际权利;
}
setNextDoor;
如何在此集合中查找项目WARE ID=='number to search'

使用straigth forward set,只需使用set.find()即可找到项目。 搜索一组结构有什么相似之处吗


Thx提前

不要使用
集合
,使用
地图
并使用
ID
作为键

请参见示例使用:


不要使用
集合
,使用
地图
,并使用
ID
作为键

请参见示例使用:


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

auto result = std::find_if(std::begin(NextDoor), std::end(NextDoor), [numberToSearch] (const auto & n) {
    return n.ID == numberToSearch;
});
result
将是指向找到的第一个元素的迭代器


有关更多详细信息和示例,请参见。

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

auto result = std::find_if(std::begin(NextDoor), std::end(NextDoor), [numberToSearch] (const auto & n) {
    return n.ID == numberToSearch;
});
result
将是指向找到的第一个元素的迭代器


有关更多详细信息和示例,请参阅。

您可能正在寻找自定义的集合比较器。请看这个问题:您可能正在寻找一个自定义的集合比较器。看这个问题:胡当迟到了几秒钟+1我会选择lambda param的
auto
。@很高兴从
auto result=…
=P中删除。只是一个小主意。对不起,标签应该是C++11刚刚修改的。是的,我会这样做,尽管自动类型的键入非常方便,以至于我倾向于忘记以前的C++11甚至存在:)@SirDarius,如果ID不是唯一的,因此可能多次出现在集合中,该怎么办?如何检索ID==numberToSearch的所有项目?Aw dang延迟秒+1我会选择lambda param的
auto
。@很高兴从
auto result=…
=P中删除。只是一个小主意。对不起,标签应该是C++11刚刚修改的。是的,我会这样做,尽管自动类型的键入非常方便,以至于我倾向于忘记以前的C++11甚至存在:)@SirDarius,如果ID不是唯一的,因此可能多次出现在集合中,该怎么办?如何检索ID==numberToSearch的所有项目?