我在 C++ 中有 vector 代码,如下所示:
for(int i=0;i<10000;i++)
{
vec.push_back(i);
}
现在,vec 中的值在 [0,9999] 范围内按排序顺序排列并且是唯一的。我如何以未排序的方式在 [0,9999] 范围内生成相同的唯一数据。
请帮助我。
最佳答案
使用标准库执行此操作的 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());
尽管 C++11/14 具有更好的随机数生成器,但应优先使用 std::shuffle()
。
关于c++ - 生成未排序的唯一数据 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26004066/