-3
我生成一系列隨機數並將它們推回到一個向量中。然後我想將它們逐一插入到鏈表中並打印出列表。但它總是拋出錯誤。 將一個數字有序地插入鏈表
#include"std_lib_facilities.h"
#include <chrono>
#define N 100
int random_numbers()
{
random_device rd; //Will be used to obtain a seed for the random number engine
mt19937 gen(rd()); //Standard mersenne_twister_engine seeded with rd()
uniform_int_distribution<> dis(0, N);
int a = 0;
a = dis(gen);
return a;
}
vector<int> randoms;
void get_random_numbers()
{
for (int i = 0; i < N; i++)
{
randoms.push_back(random_numbers());
}
}
void insert_in_lists()
{
list<int> l ;
for (int i = 0; i < N; i++)
{
list<int>::iterator it = l.begin();
if (i = 0)
{
l.insert(it, randoms[i]);
}
else
{
for (list<int>::iterator p = l.begin(); p != l.end(); p++)
{
if (randoms[i]<= *p)
{
it = p;
//break;
}
}
l.insert(it, randoms[i]);
}
}
for (list<int>::iterator p = l.begin(); p != l.end(); p++)
{
cout << *p << endl;
}
}
int main()
{
get_random_numbers()
insert_in_lists();
keep_window_open();
return 0;
}
我想獲得像一系列有序號碼的:在Problem06未處理的異常在0x74F608B2: 1 2 2 2 3 4 5 6 6 6 6 6 7 ....... ERROR .exe:Microsoft C++異常:內存位置0x00EFF884的Range_error。
你在哪裏調用'get_random_numbers'?在將數字放入數據之前,您似乎正在閱讀'randoms',這是**未定義的行爲**。 – Beta
我編輯它,但仍然無法正常工作。 –
'if(i = 0)'=是不是比較的賦值。把它改成'if(i == 0)' – drescherjm