Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: multiset  (Citit de 2137 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
xtreme
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 118



Vezi Profilul
« : Iulie 11, 2009, 13:09:20 »

cum as putea sa folosesc un container multiset de tip struct?
exemplu:

struct  orice {int a,b;};
multiset <orice> heap;

Cum pot sa ii dau eu parametru dupa care sa sorteze?
Memorat
tvlad
De-al casei
***

Karma: 63
Deconectat Deconectat

Mesaje: 121



Vezi Profilul
« Răspunde #1 : Iulie 11, 2009, 13:19:46 »

Poti sa overloadezi operatorul < sau sa-ti definesti tu altul si sa-l pui la argumentele template-ului
Cod:
bool operator< ( structura a, structura b ) { returneaza true daca a este mai mic decat b }
Cod:
class structura_cmp {
public: bool operator() ( structura a, structura b ) { returneaza true daca a este mai mic decat b }
};

Edit: uitasem sa pun operatorul sa returneze bool Whistle
« Ultima modificare: Iulie 28, 2009, 10:29:27 de către Tataranu Vlad » Memorat
toni2007
Nu mai tace
*****

Karma: 160
Deconectat Deconectat

Mesaje: 663



Vezi Profilul
« Răspunde #2 : Iulie 11, 2009, 14:00:33 »

Merge si cu struct. Vezi ca trebuie sa te folosesti de constructorul clasei set cu functie de comparare :

Cod:

struct mystruct_cmp {
    operator() ( mystruct a, mystruct b ) { returneaza true daca a este mai mic decat b }
};

set <mystruct, mystruct_cmp> S;


Parca asa era, nu mai imi amintesc exact.
Memorat
sima_cotizo
Nu mai tace
*****

Karma: 219
Deconectat Deconectat

Mesaje: 596



Vezi Profilul
« Răspunde #3 : Iulie 11, 2009, 15:39:54 »

La voi operatorul ala nu trebuie sa returneze ceva (sa aiba un tip)?  Whistle Asta e cam cum ar arata complet:
Cod:
struct  mystruct {int a,b;};
struct mystruct_cmp {
    bool operator() ( mystruct A, mystruct B ) { // returneaza true daca A este mai mic decat B
          return A.a < B.a;  // sau ".b", sau ce vrei tu
    }
};

multiset <mystruct, mystruct_cmp> S;
@Toni, ce ai scris e echivalent cu ce a scris Vlad (struct = clasa cu toti membrii publici by default); ce ai facut acolo se cheama ca ai folosit un template  Thumb up


PS: Eu am facut doar o observatie. Nu vreau sa porneasca discutii de la acest post legate de definitia pt "struct", "clasa", "template", "constructor" s.a. Wink
Memorat
xtreme
De-al casei
***

Karma: -26
Deconectat Deconectat

Mesaje: 118



Vezi Profilul
« Răspunde #4 : Iulie 11, 2009, 16:50:45 »

Mersi.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines