我有一个枚举,我想把它们都放在集合中(然后用 set_intersection 算法删除一些,但那是题外话)。一切都很好,除了我坚持第 1 步。:)
如果我有(真正的班级有更高基数的枚举)
class MyClass
{
enum Color{red, green , blue}
};
我将如何初始化 astd::set<MyClass::Color>
以包含所有枚举。
我显然可以一个一个地手动插入它们,使用强制转换进行 for 循环,因为它们是连续的并且从 0 开始(如果我在枚举定义中不使用 =,我认为这是必需的),但我正在寻找一种更优雅的方式。
编辑:如果可能,我更喜欢 C++03 解决方案,因为当前的问题实例需要它,但如果不是,C++11 也很高兴知道。