Titlul: SORT din STL Scris de: gaboru corupt din Februarie 22, 2009, 11:21:00 ce ar trebui sa fac ca sa folosesc sortul din STL pe o structura? din cate stiu s-a mai discutat problema aceasta da nu gasesc unde. din cate stiu trebuie implementata o functie de comparare... dar cam atat stiu. multumesc anticipat
Titlul: Răspuns: SORT din STL Scris de: Bogdan-Cristian Tataroiu din Februarie 22, 2009, 11:28:52 Declari o functie care primeste ca parametru 2 variabile de tipul structurii si returneaza daca in sirul sortat prima structura apare inaintea celei de-a doua. Cand apelezi sort adaugi un al treilea parametru - numele functiei.
Cod: int cmp(const nume_structura &a, const nume_structura &b) Daca folosesti "&a" in loc de "a" ar trebui sa fie mai rapid pentru ca se transmite doar o referinta pentru structura, nu toata structura. Titlul: Răspuns: SORT din STL Scris de: Stefan Istrate din Februarie 22, 2009, 12:09:43 Sau inzestrezi structura cu o relatie de ordine (definesti operatorul < ) si aplici sort-ul normal, tot cu 2 parametri.
Titlul: Răspuns: SORT din STL Scris de: Andrei Grigorean din Februarie 25, 2009, 00:00:51 Stefan, mi s-a parut cam sec postul tau pentru cineva care nu stie C++. Mai jos am scris un exemplu:
Cod: #include <algorithm> Titlul: Răspuns: SORT din STL Scris de: Emanuel Cinca din Februarie 25, 2009, 00:14:56 eu am folosit si in exteriorul structurii si a mers fara probleme :)
Cod: bool operator<(const mystruct &a, const mystruct &b) cum am folosit eu poate avea vreun efect global pentru semnul '<' si sa am erori in unele cazuri? Titlul: Răspuns: SORT din STL Scris de: Andrei Grigorean din Februarie 25, 2009, 00:20:43 Ce ai facut tu este cealalta modalitate de a defini operatorul <. Nu te va incomoda cu nimic faptul ca nu l-ai bagat in structura.
Titlul: Răspuns: SORT din STL Scris de: alexandru din Martie 06, 2009, 10:38:24 Sper sa nu se supere nimeni , dar n-am mai vrut sa deschid un alt topic despre aproape acelasi lucru. Cum sortez o structura cu qsort()?.....Nu stiu cum sa fac suprogramul compare, daca ma poate ajuta cineva ;)
Titlul: Răspuns: SORT din STL Scris de: Florian Marcu din Martie 06, 2009, 11:09:52 S-a mai discutat despre asta aici (http://infoarena.ro/forum/index.php?topic=1932.0). :)
Titlul: Răspuns: SORT din STL Scris de: alexandru din Martie 06, 2009, 11:48:46 multumesc mult :D. Am gasit si o alta metoda de a sorta, fara a pastra indicii :).....
Titlul: Răspuns: SORT din STL Scris de: Preda Rares Mihai din Februarie 04, 2011, 15:51:38 Daca imi declar un vector<vector<int> > sol;
vectorul initial arata asa cod: 4 6 2 2 1 3 3 6 5 dupa ce am facut sort(sol[ i ].begin(), sol[ i ].end(), cmp) am sortat elemente de pe fiecare linie unde cmp este cod: bool cmp(const int x, const int y) { return x < y; } 2 4 6 1 2 3 3 6 5 si acum vreau sa sortez dupa dupa elementul de pe prima linie si va arata asa cod: 1 2 3 2 4 6 3 6 5 cum as putea sa fac folosind sort din STL ? Multumesc anticipat ! Titlul: Răspuns: SORT din STL Scris de: FMI Ciprian Olariu din Februarie 04, 2011, 19:35:15 Pentru cei care doresc mai multe detalii despre sortarea cu functia sort pe mai multe criterii cititi aici un post despre acest subiect al profesorului meu :) Ce e important e sa stii forma standard sort(v,v+n,Ordonare()) sau sort(v+1,v+n+1,Ordonare()) daca tii vectorul de la 1 la n,iar in functia Ordonare() bagi toate criteriile de care ai nevoie in if-uri si else-uri :D Cam la fel cred ca s-ar proceda si pe qsort,dar prefer sort.
http://www.dponline.ro/articol.php?idarticol=77 (http://www.dponline.ro/articol.php?idarticol=77) |