【发布时间】:2010-10-07 11:47:27
【问题描述】:
...感谢阅读...
我还在学习中,所以请原谅... ;-)
我正在编写一个在空间中网格化实体的函数。网格是通过使用“节点”类的对象完成的,每个节点由以下方式表示:
int id
double p
double r
最初我认为映射是可行的方法:使用映射我可以在“id”键和第二个键(指向节点对象的指针)之间建立关联。
类似这样的:
int nodeId;
Node *node;
std::map<int, Node *> NodeMap;
然后,当我创建节点时,我只需调用“new”运算符。例如,在 for 循环中,我执行以下操作:
node = new Node(i); // the node constructor sets the id to the value of i.
然后我将新节点添加到地图中:
NodeMap[i] = node;
但是....我意识到我需要在地图中进行查找,而不是通过第一个键(id)而是通过 p 和 r 参数(节点的坐标)。
换句话说,我需要在给定 p 和 r 值的情况下返回节点 id 的东西。 如果使用整数第一个键 (id) 完成查找,则地图是一个完美的容器。 有人对如何解决这个特定问题有建议吗?
非常感谢! 副总裁。
【问题讨论】:
-
p 和 r 代表什么 - 这不是 2D 空间,因为您只有 2 个坐标吗?
标签: c++ data-structures stl map