如何在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