我想要这个枚举的随机颜色:
enum Color {
red = 10,
black = 3,
pink = 6,
rainbow=99
};
Color my_randowm_color = ...
我该怎么做?
答案 0 :(得分:5)
无法枚举枚举值。
您可以使用表格:
std::vector<int> colors = {red, black, pink, rainbow};
然后从中挑选一个随机元素。
选择随机元素作为练习。
答案 1 :(得分:0)
注意:根据我对OP所需要的理解,这是一种不同的方法。
您可以做的是生成0-3范围内的随机数。因为你有四种颜色。然后将颜色存储在数组中。并使用一个函数返回一个随机数作为该数组的索引。通过这种方式,您将获得随机颜色。
例如
random() {
// func definition
// return random number in range of array indices
}
array = ["red","black","pink","rainbow"];
array[random()];
答案 2 :(得分:0)
您可以创建一个包含可能枚举的数组,然后为数组索引生成随机数,从0开始到总可能的枚举值。
#include <iostream>
int main()
{
enum Color { red = 10, black = 3, pink = 6, rainbow=99 };
int max = 3;
int min = 0;
srand(static_cast <unsigned int> (time(0)));
int randNum = rand() % (max - min + 1) + min;
Color forRandomPurpose[] = { red, black, pink, rainbow };
Color my_random_color = forRandomPurpose[randNum];
std::cout << "Hello World!\n";
std::cout << my_random_color << std::endl;
}
答案 3 :(得分:0)
只是为了好玩( - :
Color random_color() {
int r = rand() % 4;
return static_cast<Color>((r + 1) * 3 + (r >= 2) + (r >= 3) * 86);
}