Ich erzeuge eine Reihe von Zufallszahlen und schiebe sie in einen Vektor zurück. Dann möchte ich sie geordnet in eine verkettete Liste einfügen und die Liste ausdrucken. Es wird jedoch immer Fehler ausgegeben. fügen Sie eine Ordnungszahl in eine verkettete Liste ein
#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;
}
Ich möchte, eine Reihe von sortierten Anzahl bekommen: 1 2 2 2 3 4 5 6 6 6 6 6 7 ....... ERROR: Unbehandelte Ausnahme bei 0x74F608B2 in Problem06 .exe: Microsoft C++ - Ausnahme: Range_error am Speicherort 0x00EFF884.
Wo rufst du 'get_random_numbers' an? Sie scheinen "Randoms" zu lesen, bevor Sie Zahlen eingeben, was ** undefiniertes Verhalten ** bedeutet. – Beta
Ich habe es bearbeitet, funktioniert aber immer noch nicht. –
'if (i = 0)' = ist eine Zuweisung kein Vergleich. ändere das zu "if (i == 0)" – drescherjm