2016-05-22 3 views
0

Ich bin ein Anfänger Programmierer und hätte gerne Hilfe bei einer bestimmten Aufgabe, die ich seit Tagen konfrontiert habe. Ich weiß, dass diese Aufgabe einfach scheint, aber meine Aufgabe ist es, zufällige ganze Zahlen von 1 bis 5 in einen Vektor einzufügen, der mindestens 5 Elemente enthalten kann. Ich muss jedoch sicherstellen, dass keine Duplikate gefunden werden. Dieser Teil des Programms hat mich beunruhigt. Kann mir bitte jemand erklären, was sie konzeptionell oder in Bezug auf den Code tun würden? Vielen Dank.Wie können Sie Zahlen von 1 bis 5 zufällig in einen Vektor einfügen und prüfen, ob es keine Duplikate gibt?

+0

Sie sollten vorzugsweise 'std :: set' verwenden. –

+0

Es wäre nett, einen Vektor zu verwenden –

+0

Fügen Sie die Zahlen 1..5 ein, dann mischen Sie das Array. 'std :: shuffle' mit einem anständig vorbereiteten Rng würde es leicht machen. – WhozCraig

Antwort

2

Sie den Vektor mit den Werten initialisiert werden kann [1..5] und dann mischen:

std::vector<int> mem = {1,2,3,4,5}; 
std::random_shuffle (std::begin(mem), std::end(mem)); 

bearbeiten

std::shuffle wurde in C++ eingeführt 11 und betrachten mehr zu sein bevorzugt über std::random_shufle. Die Verwendung in diesem Beispiel ist identisch. Weitere Informationen zu den Unterschieden finden Sie unter link.

+0

'std :: shuffle' wird empfohlen gegenüber' std :: random_shuffle' – milleniumbug

+0

@milleniumbug, nicht kritisch für dieses Beispiel Ich denke, aber ich werde es bearbeiten. Vielen Dank. –

Verwandte Themen