在我的小Qt应用程序中,我想在单击按钮后从数组中选择一个随机字符串。我读过许多帖子,但对我来说没什么用。
所以在我的插槽中有一个包含多个字符串的数组。我还实现了<string>, <time.h>
和srand。
#include "smashrandom.h"
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string>
SmashRandom::SmashRandom(QWidget *parent)
: QWidget(parent)
{
// shortened version
connect(button, SIGNAL(clicked()), this, SLOT(Randomizer()));
}
void SmashRandom::Randomizer()
{
srand((unsigned int)time(NULL));
std::string characters[6] = {"Mario", "Luigi", "Peach", "Yoshi", "Pac Man", "Sonic"};
}
但我如何从我的数组中选择一个随机字符串&#34;字符&#34;?通常我使用rand()%表示int或double数组,但在这种情况下我不知道如何将它用于随机字符串。
除此之外,还可以从数组内的区域中选择一个随机字符串吗?例如,我只想要一个从Mario到Yoshi的随机字符串,所以Pac Man和Sonic甚至不能出现?
我希望你能理解我的问题并提前感谢。 :)
答案 0 :(得分:1)
您应该使用random
标题。
#include <random>
std::default_random_engine generator;
std::uniform_int_distribution dist(0, 5);
int StringIndex = dist(generator);
std::string ChosenString = characters[StringIndex];
以上内容将为您的数组生成一个随机索引。
如果要限制范围,请更改dist
的构造函数,例如(dist(0,2)
只允许选择Mario,Luigi和Peach,索引0 1和2)。 / p>