C++ 随机数生成器以升序输出数字

C++ 随机数生成器以升序输出数字,c++,random,integer,srand,time.h,C++,Random,Integer,Srand,Time.h,首先,我是一个早期的初学者程序员,希望得到一些帮助 我已经编写了以下代码,根据我测试的结果生成: 5个介于1和39之间的随机数//num1gen到num5gen-例如A组 1个介于1和14之间的随机数//Thunderball-例如B组 我只想告诉你,如果你把A中的数字作为向量来创建,那么有一个带有sort的算法头,比如: #include <vector> #include <algorithm> int main() { std::vector<i

首先,我是一个早期的初学者程序员,希望得到一些帮助

我已经编写了以下代码,根据我测试的结果生成:

  • 5个介于1和39之间的随机数//num1gen到num5gen-例如A组
  • 1个介于1和14之间的随机数//Thunderball-例如B组

我只想告诉你,如果你把A中的数字作为向量来创建,那么有一个带有sort的算法头,比如:

#include <vector>
#include <algorithm>

int main() {
    std::vector<int> numA(5);
    srand( time(NULL) );
    for( unsigned int i(0); i < numA.size(); ++i )
        numA[i] = (rand()%49+1);
//After you create the vector and do your test that they're not equal
    std::sort(numA.begin(), numA.end());

    return 0;
}
#包括
#包括
int main(){
std::载体numA(5);
srand(时间(空));
for(无符号整数i(0);i
std::sort()
包含在
#include
标题中

#包括
 #include <random>
 #include <vector>
 #include <algorithm>
 #include <numeric>

 int main()
{
 std::vector<unsigned> balls(39);
 std::iota(balls.begin(), balls.end(), 1);
 std::shuffle (foo.begin(), foo.end(), std::mt19937(std::random_devic{}()));
 balls.resize(5);
 std::sort(balls.begin(), balls.end());
 std::cout << "Balls: "
 std::copy(balls.begin(), balls.end(), std::ostream_iterator<unsigned>{std::cout," "})
}
#包括 #包括 #包括 int main() { 向量球(39); std::iota(balls.begin(),balls.end(),1); std::shuffle(foo.begin()、foo.end()、std::mt19937(std::random_devic{}()); 调整大小(5); 排序(balls.begin(),balls.end());
问题是什么?不要使用
srand()
在循环中。使用a存储所有数字,然后对其进行排序。只需将数字读入数组或
std::vector
并在输出前对其进行排序。如果我将这些数字读入数组,我是否仍能将生成的随机数保留在其唯一整数名中?即num1gen、num2gen等。仍保留数字。由于我的程序的其余部分正在检查这些内存名称位置。谢谢你,我将尝试它!但是,这会将生成的随机数放入num1gen、num2 gen……到num5gen吗?因为要使它与我编写的程序的其余部分兼容,我需要将生成的这些数字存储在tho中se内存位置。由于它们在整个过程中被多次引用和读取。@Mikericson-不,不会。您是否根据该要求编辑了原始问题?在
向量中没有排序方法。
。您必须使用
无效排序(先使用RandomAccessIterator,后使用RandomAccessIterator)
我没有编辑问题的任何内容,只有代码的缩进。Thanks@TriHard8将
numA.sort(numA.begin(),numA.end());
更改为
std::sort(numA.begin(),numA.end()){ /CODE〉我已经尝试过并接收了这个消息。{IFNDEF,CXX0xXWARIN HYEXY定义了xCX0xxWalnIn h 1,如果这个文件需要编译器和库支持的ISO C++ 2011标准。这个支持是当前实验的,必须用-STD= C++ 11或-STD= GNU++11编译器选项来启用。f@MikeEricson我使用了C++11,所以您必须按照消息中的说明打开C++11支持。不幸的是,我找不到该选项。我使用的是代码块。感谢您的回复。您不会厌倦在代码中每隔2厘米键入
std::
 #include <random>
 #include <vector>
 #include <algorithm>
 #include <numeric>

 int main()
{
 std::vector<unsigned> balls(39);
 std::iota(balls.begin(), balls.end(), 1);
 std::shuffle (foo.begin(), foo.end(), std::mt19937(std::random_devic{}()));
 balls.resize(5);
 std::sort(balls.begin(), balls.end());
 std::cout << "Balls: "
 std::copy(balls.begin(), balls.end(), std::ostream_iterator<unsigned>{std::cout," "})
}