【发布时间】:2017-05-17 10:20:04
【问题描述】:
我有一个枚举类,它有 4 个不同的值。 A、B、C 和 D。
我无法控制底层类型是什么。
我有一个枚举向量,我想订购它,所以所有A 都是第一个。然后是所有B,然后是所有C,最后是所有D。
我可以用很长的 if 语句来做到这一点。但我想知道是否有一种简单的惯用方法来实现这一点。
编辑:你误解了我想要的。我有一个这样的枚举类:
enum class MyEnum { A = 3, B = 1, C = 4, D = 2};
我有一个这个枚举的向量,我想订购以便 A 在 B 之前在 C 之前在 D 之前。
std::sort 在这里根本没有帮助。
【问题讨论】:
-
约翰,你能作为你的班级一起工作吗?
-
std::sort可以,但您必须编写自己的比较。 -
@BoPersson 是的,请启发如何在不引起大量比较的情况下做到这一点