在结构体集合中查找项
Find item in set of struct
我已经设置了一个结构体。
struct Neighbour
{
int ID;
int Left;
int Right;
}
set<NodeNeighbour>NextDoor;
如果ID=='要搜索的号码',我如何在这个集合中找到一个项目?
对于直接集合,可以简单地使用set.find()查找项。有没有类似的东西来搜索一组结构?
提前致谢
您可以使用std::find_if
,它使用一元谓词函数:
auto result = std::find_if(std::begin(NextDoor), std::end(NextDoor), [numberToSearch] (const auto & n) {
return n.ID == numberToSearch;
});
result
将是指向找到的第一个元素的迭代器。
不要使用set
,使用map<int,NeighBour>
,并使用ID
作为密钥。
- http://en.cppreference.com/w/cpp/container/map
参见示例:
- http://en.cppreference.com/w/cpp/container/map/operator_at
相关文章:
- Python 集合.计数器,如何避免重复查找
- 如何查找集合的所有分区 (C++)
- 如何在集合中的特定字符串中查找子字符串
- 在集合中查找使用结构C++的元素
- 在尝试使用递归查找集合子集的总数时,我遇到了分割错误
- 在具有自定义对象的集合中查找值
- 我如何在C 中制作算法,以在不重复的情况下查找集合的变化(即n元素,选择k)
- 使用STL算法查找集合中的所有匹配项
- 在集合中查找结构向量
- 使用 STL 算法查找集合中的前两个不相邻元素
- 如何查找数组集合中第二大元素的索引
- 如何在<string>没有 std::string 中介的情况下制作一个支持通过 C 字符串查找的集合?
- 查找集合中第k个最大元素
- [唯一相等运算符]在集合中查找重复元素并将其分组的快速算法是什么
- C++模糊解算器:在集合中查找前缀
- 更好的std::在指针集合上查找,并将取消引用的值与常量引用值进行比较
- 查找两个集合之间的邻近匹配对
- 在包含自定义类型的集合中查找
- 在任意加长的集合中查找最大数不起作用
- 查找集合中最近的元素