在范围内生成一组唯一元素

B.S*_*s15 2 c++ vector

首先,我只是在学习C++.

我正在尝试创建一个四个不同整数的向量,范围从0:9.我正在使用种子和randint()函数在每次运行程序时获取不同的随机数.我遇到的问题是在收到随机数后如何确认该值尚未保存在向量中.我的代码示例.

int seed()
{
    // Produce computers numbers
    int seed;
    int x;
    cout << "Please enter any Integer!\n";
    cin >> x;
    seed = randint(x) % 10;
    return seed;
}

int main ()
{
    while(keys.size() !=4)
    {
        key = seed();
    }
}
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,int key现在保存随机数,但我不想使用keys.push_back(key),直到我确认该密钥与当前保存在向量中的任何其他数字是唯一的.

Som*_*ude 8

如何使用std::unordered_set存储的数字?只要大小小于4(例如循环),就添加它.

如果在向量中需要它,则可以在生成集合中的数字后创建向量.