作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个枚举,我想将它们全部放入集合中(然后使用 set_intersection 算法删除一些,但这是题外话)。 除了我卡在第 1 步之外,一切都很好。:)
如果我有(真实类具有更高基数的枚举)
class MyClass
{
enum Color{red, green , blue}
};
我将如何初始化 std::set<MyClass::Color>
包含所有枚举。
我显然可以一个接一个地手动插入它们,做一个带强制转换的 for 循环,因为它们是连续的并且从 0 开始(我认为如果我不在枚举定义中使用 = 则这是必需的),但我正在寻找一种更优雅的方式。
编辑:如果可能的话,我更喜欢 C++03 解决方案,因为当前的问题实例需要它,但如果不是,C++11 也很好知道。
最佳答案
这是一个选项:
#define COLORS {red, green , blue}
enum Color COLORS;
static std::set<Color> color_set() {
return COLORS;
}
#undef COLORS
关于c++ - 如何优雅地将所有枚举放入 std::set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15411519/
我是一名优秀的程序员,十分优秀!