Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/144.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从c++;?_C++_Random_Enums - Fatal编程技术网

C++ 如何从c++;?

C++ 如何从c++;?,c++,random,enums,C++,Random,Enums,我想要此枚举中的随机颜色: enum Color { red = 10, black = 3, pink = 6, rainbow=99 }; Color my_randowm_color = ... 我该怎么做呢?注意:这是一种基于我对OP期望的理解的不同方法 你可以做的是生成一个0-3范围内的随机数。因为你有四种颜色。然后将颜色存储在数组中。并使用一个函数返回一个随机数作为该数组的索引。通过这种方式,您将在您拥有的颜色中获得随机颜色 例如 您可以创建一个包含可能枚举的数组,然后为

我想要此枚举中的随机颜色:

enum Color {
red = 10,
black = 3,
pink = 6,
rainbow=99    
};

Color my_randowm_color = ...

我该怎么做呢?

注意:这是一种基于我对OP期望的理解的不同方法

你可以做的是生成一个0-3范围内的随机数。因为你有四种颜色。然后将颜色存储在数组中。并使用一个函数返回一个随机数作为该数组的索引。通过这种方式,您将在您拥有的颜色中获得随机颜色

例如


您可以创建一个包含可能枚举的数组,然后为数组索引生成一个从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;
    }
#包括
int main()
{
枚举颜色{红色=10,黑色=3,粉红色=6,彩虹=99};
int max=3;
int min=0;
静态施法(时间(0));
int randNum=rand()%(max-min+1)+min;
用于随机目的的颜色[]={红色、黑色、粉色、彩虹};
颜色my_random_Color=用于随机目的[randNum];

std::cout无法枚举枚举的值

您可以使用以下表格:

std::vector<int> colors = {red, black, pink, rainbow};
std::vector colors={红色、黑色、粉色、彩虹};
然后从中选择一个随机元素

选择一个随机元素作为练习。

只是为了好玩(-:

Color random\u Color(){
int r=rand()%4;
返回静态(r+1)*3+(r>=2)+(r>=3)*86);
}

<>实况演示:

为什么你的枚举值如此不稳定?有什么特别的原因吗?可能重复:我不能选择我的颜色的值,我想使用枚举使我的代码中的颜色比较容易被复制,因为我的枚举已经赋值了你的用例,你可以考虑一个不同的数据类型。你真的需要。你想添加一些评论吗?你在上面做了什么?@JeJo补充道:“这真的很难看,但它能工作……如果枚举更大,那将是一个真正的痛苦。”。
std::vector<int> colors = {red, black, pink, rainbow};
Color random_color() {
   int r = rand() % 4;
   return static_cast<Color>((r + 1) * 3 + (r >= 2) + (r >= 3) * 86);
}