【发布时间】:2011-03-13 08:53:52
【问题描述】:
您好,我想知道按顺序插入元素的最佳容器是什么?我认为不需要地图,因为我只是要访问前面的元素,弹出它然后插入更多元素(我正在实现一个带权重的寻路算法(Dijkstra))
我可能自己使用了一个列表并按顺序插入,但无法平分(因为您从前面或后面开始访问)会妨碍性能。
【问题讨论】:
标签: c++ path-finding
您好,我想知道按顺序插入元素的最佳容器是什么?我认为不需要地图,因为我只是要访问前面的元素,弹出它然后插入更多元素(我正在实现一个带权重的寻路算法(Dijkstra))
我可能自己使用了一个列表并按顺序插入,但无法平分(因为您从前面或后面开始访问)会妨碍性能。
【问题讨论】:
标签: c++ path-finding
如果您只需要访问正面和背面,std::deque(双端队列)非常适合。
但是,对于 Dijkstra 算法,您不需要优先级队列吗?
【讨论】:
std::priority_queue呢? :)
std::vector 或std::deque 作为底层容器。但这有关系吗?如果您使用std::priority_queue 成员函数,您将不会直接访问底层容器。
如果您使用 C++,则在 <queue> 头文件中有一个 std::priority_queue 容器适配器。
【讨论】: