如何在C++中随机选择一个枚举类型的值? 我想做这样的事情。生成随机枚举
enum my_type(A,B,C,D,E,F,G,h,J,V);
my_type test(rand() % 10);
但这是非法的......没有从int到枚举类型的隐式转换。
如何在C++中随机选择一个枚举类型的值? 我想做这样的事情。生成随机枚举
enum my_type(A,B,C,D,E,F,G,h,J,V);
my_type test(rand() % 10);
但这是非法的......没有从int到枚举类型的隐式转换。
如何:
enum my_type {
a, b, c, d,
last
};
void f() {
my_type test = static_cast<my_type>(rand() % last);
}
+1对于较少的硬编码,但我推荐C++风格的static_cast。 – Bill 2010-06-08 16:52:40
当然,我的C++很生疏,很好。 – zildjohn01 2010-06-08 18:57:09
如果枚举值不是连续的,这将不起作用。 – einpoklum 2016-08-15 13:44:50
没有隐式转换,但明确的一会工夫:
my_type test = my_type(rand() % 10);
在接受的答案中提到的一些人隐式转换如果枚举值不连续,将不会工作。它也适用于此? – 2017-09-27 06:25:53
的static_cast就是在这样的情况下,一个很好的朋友。 – 2010-06-08 16:10:16