gpt4 book ai didi

c++ - 具有两个键的 HashMap - 查找链接到一个键的所有元素。 C++

转载 作者:行者123 更新时间:2023-11-28 08:27:39 25 4
gpt4 key购买 nike

我有一个对象 Line其中包含 2 个 Point 类型的对象称为 Point1Point2 .我想创建一个包含行的 HashMap,其键为 std::pair<Point1, Point2> .

我想做的是找到所有被 Point1 引用的行(例如) ,即使用键 std::pair<Point1, Anything> .我不关心std::pair<Anything, Point1> .

我不知道这是否可能,我希望它是。

谢谢

最佳答案

听起来您真正想要的是 std::multimap (或 std::unordered_multimap ),将单个点作为键,将线 ( pair<point, point> ) 作为关联值。或者,由于 key 持有第一点,您可以将其作为 std::multimap<point, point> 来完成。 ,以避免存储 Point1 两次,一次作为键,另一次作为关联值的一部分。无论哪种方式,都可以轻松查找使用特定点的所有线。

另一种可能性(如果线的集合相当静态)是将线对象放入一个 vector 中,按 Point1 排序。这(再次)使您​​可以快速搜索包含特定点的所有线。优点是这会减少您需要存储的数据量(消除节点之间的指针),并且通常会提高搜索速度。缺点是插入或删除项目比较慢。

关于c++ - 具有两个键的 HashMap - 查找链接到一个键的所有元素。 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3364290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com