生成未排序的唯一数据C++

2 c++ vector

我在C++中有矢量代码,如下所示:

    for(int i=0;i<10000;i++)
    {
       vec.push_back(i);
    }
Run Code Online (Sandbox Code Playgroud)

现在,vec中的值按照[0,9999]范围内的排序顺序排列,并且是唯一的.如何以未排序的方式生成[0,9999]范围内的相同唯一数据.

请帮助我.

Gal*_*lik 6

使用标准库执行此操作的前C++ 11方法是:

for(int i=0;i<10000;i++)
{
   vec.push_back(i);
}

//http://www.cplusplus.com/reference/algorithm/random_shuffle/

std::random_shuffle(vec.begin(), vec.end());
Run Code Online (Sandbox Code Playgroud)

C++ 11/14有更好的随机数生成器,但std::shuffle()应该优先使用.