-3
일련 번호를 생성하여 벡터로 푸시 백합니다. 그런 다음 링크 된 목록에 순서대로 순서대로 삽입하고 목록을 인쇄하려고합니다. 그러나 항상 오류가 발생합니다. Problem06에 0x74F608B2에서 처리되지 않은 예외 : 1 2 2 2 3 4 5 6 6 6 6 6 7 ....... ERROR : 링크 된 목록에 숫자를 순서대로 삽입하십시오.
#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;
}
는 I는 정렬 같은 일련 번호를 얻을 싶어 .exe : Microsoft C++ 예외 : Range_error (메모리 위치 0x00EFF884)
어디에서'get_random_numbers'를 호출합니까? 숫자를 넣기 전에'randoms'를 읽는 것 같습니다 ** 이것은 정의되지 않은 동작입니다 **. – Beta
편집했지만 여전히 작동하지 않습니다. –
'if (i = 0)'=은 할당이 아닌 비교입니다. 그것을 if (i == 0)로 변경하십시오. – drescherjm