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

标签 c++ vector

我在 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/

相关文章:

c# - 增加 Vector3 的 Y 值

c++ - 错误 : no operator "<" matches these operands

c++ - Shared_ptr 没有可行的重载 '='

c++ - 浏览字符串矩阵并将其存储在 vector 的 vector 中

java - 单线程应用程序中的 ArrayList 与 Vector 性能

C++ 对对象 vector 进行排序,出现错误 C3867 函数调用缺少参数列表?

C++ std::cout 和 << 运算符,优先级

c# - 使用 SWIG 从 C++ 生成 C# 接口(interface)

c++ - 是否调用函数指针来生成代码未定义的行为?

c++ - 将对象指针 vector 传递给类 (C++)