[RISOLTO][C++ Algoritms] Ordinare a caso una lista

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Avatar utente
Spiros
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1100
Iscrizione: martedì 21 marzo 2006, 15:11
Località: Zurigo

[RISOLTO][C++ Algoritms] Ordinare a caso una lista

Messaggio da Spiros »

Qui (http://www.cppreference.com/cppalgorithm/random_shuffle.html) ho trovato un algoritmo che mi serve: ho una lista di tot elementi e vorrei che questi venissero ordinati pseudo-casualmente (non mi interessa molto la vera e propria casualità).
Ho provato così:

Codice: Seleziona tutto

random_shuffle(lista.begin(), lista.end());
ma g++ ha restituito:

Codice: Seleziona tutto

/usr/include/c++/4.1.3/bits/stl_algo.h: In function ‘void std::random_shuffle(_RandomAccessIterator, _RandomAccessIterator) [with _RandomAccessIterator = std::_List_iterator<int>]’:
Tabella.cpp:58:   instantiated from here
/usr/include/c++/4.1.3/bits/stl_algo.h:1905: error: no match for ‘operator+’ in ‘__first + 1’
Tabella.cpp:58:   instantiated from here
/usr/include/c++/4.1.3/bits/stl_algo.h:1906: error: no match for ‘operator-’ in ‘__i - __first’
make: *** [Tabella.o] Error 1
Quindi non ho sbagliato io, ma chi ha scritto la funzione? Oppure devo usare vectors e non posso con le liste?
Ultima modifica di Anonymous il giovedì 21 febbraio 2008, 8:47, modificato 1 volta in totale.
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
Avatar utente
viralex
Prode Principiante
Messaggi: 186
Iscrizione: sabato 20 ottobre 2007, 11:18
Località: viareggio
Contatti:

Re: [C++ Algoritms] Ordinare a caso una lista

Messaggio da viralex »

strano.. su cplusplus.com c'è l'esempio con vector, vedi se ti può essere utile

http://www.cplusplus.com/reference/algorithm/random_shuffle.html

intanto vedi se va la swap
Avatar utente
Spiros
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1100
Iscrizione: martedì 21 marzo 2006, 15:11
Località: Zurigo

Re: [C++ Algoritms] Ordinare a caso una lista

Messaggio da Spiros »

Ho cambiato da list a vector, e va tutto bene. O quasi...
Come faccio a migliorare la casualità? Vengono sempre gli stessi risultati.
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
Avatar utente
viralex
Prode Principiante
Messaggi: 186
Iscrizione: sabato 20 ottobre 2007, 11:18
Località: viareggio
Contatti:

Re: [C++ Algoritms] Ordinare a caso una lista

Messaggio da viralex »

devi inizializzare il random con srand(0); che sta in cstdlib (mi pare di ricordare che sia quella)
Avatar utente
Spiros
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1100
Iscrizione: martedì 21 marzo 2006, 15:11
Località: Zurigo

Re: [C++ Algoritms] Ordinare a caso una lista

Messaggio da Spiros »

Grazie, risolto.  :D
Spiros
HP Compaq 6910p - Intel Core2 Duo T7500 @ 2.20GHz - 2GB DDR2 - HD 120GB - ATI Mobility Radeon X2300 - Intel PRO/Wireless 4965 AG
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti