0

我想生成唯一的随机数并根据这些随机数添加项目。这是我的代码:

问题是当我使用代码验证数组中是否存在生成的数字时results.contains(randomNb)

   int nbRandom = ui->randoomNumberSpinBox->value();
   //nbRandom is the number of the random numbers we want
   int i = 1;
   int results[1000];
   while ( i < nbRandom ){
       int randomNb = qrand() % ((nbPepoles + 1) - 1) + 1;
       if(!results.contains(randomNb)){
           //if randomNb generated is not in the array...
           ui->resultsListWidget->addItem(pepoles[randomNb]);
           results[i] = randomNb;
           //We add the new randomNb in the array
           i++;
       }
   }
4

1 回答 1

1

results是一个数组。那是一个内置的 C++ 类型。它不是类类型,也没有方法。所以这是行不通的:

results.contains(randomNb)

您可能想改用 QList。像:

QList<int> results;

向其中添加元素:

results << randomNb;

此外,您的代码中有一个错误。您从 1 ( i = 1) 而不是 0 开始计数。这将导致丢失最后一个数字。您应该将i初始化更改为:

int i = 0;

通过这些更改,您的代码将变为:

int nbRandom = ui->randoomNumberSpinBox->value();
//nbRandom is the number of the random numbers we want
int i = 0;
QList<int> results;
while ( i < nbRandom ){
    int randomNb = qrand() % ((nbPepoles + 1) - 1) + 1;
    if(!results.contains(randomNb)){
        //if randomNb generated is not in the array...
        ui->resultsListWidget->addItem(pepoles[randomNb]);
        results << randomNb;
        //We add the new randomNb in the array
        i++;
    }
}
于 2012-10-25T21:28:08.187 回答