gpt4 book ai didi

c++ - 如何优雅地将所有枚举放入 std::set

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:10:45 25 4
gpt4 key购买 nike

我有一个枚举,我想将它们全部放入集合中(然后使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com