【发布时间】:2018-03-02 04:22:52
【问题描述】:
根据条件,我需要在同一个vector<Objects>上使用不同的比较器类
priority_queue<Object, vector<Object>> pq;
if (something...)
priority_queue<Object, vector<Object>, Comp1> pq;
else if(...)
priority_queue<Object, vector<Object>, Comp2> pq;
else
priority_queue<Object, vector<Object>, Comp3> pq;
... All further code works on pq & does not change on the conditions.
我如何实现这一目标?我发现不建议更改比较器,因为它会导致未定义的行为,但在这里我只需要根据某些条件初始化不同的比较。
【问题讨论】:
-
这个问题非常模糊,但是如果您需要“基于某些条件”更改比较,为什么不将这些条件包含在您的比较函数中?
-
这似乎是个好主意! :D
-
那会有问题。您可能需要重新审视自己的需求并找到不同的解决方案。
标签: c++ comparator priority-queue