Article View: be.comp.programming
Article #12301C++ functieobjecten als comparator in STL
From: Goethals Frederik
Date: Sat, 08 Dec 2001 09:19
Date: Sat, 08 Dec 2001 09:19
40 lines
2755 bytes
2755 bytes
Hoi,
ik zit namelijk met een groot probleem bij mijn implementatie van een
project.
Even de situatie schetsen:
De bedoeling is dat ik een priority_queue van Event* wil hebben dat gebruikt
wordt in een discrete event simulator.
Nu heb ik een basisklassen Event en 2 afgeleide klassen Custarival en
Custleaves. Ik kan beide soorten Event* in de wachtlijn krijgen, het
probleem is dat hij ze niet goed kan sorteren kan sorteren .
Elk Event (dus ook de afgeleide events) hebben een 'int time' als protected
member en een public 'int geefTime() const {return time; }' als methode. Nu
wou ik dus de Event* vergelijken en had bij constructie van de
priority_queue het volgende gedaan: priority_queue <Event*, deque<Event*>,
less<Event*> > p;
ik heb dan in elke afgeleide klassen de operator< (....) geimplementeerd.
(heb dan ook telkens wanneer hij event* vergelijkt een cout << "vgl" bijgezt
als controle) Maar het probleem is dus dat hij nooit in de functie operator<
(...) komt en dus geen "vgl" uitprint.
Nu heb ik al enige raad en info gehad van de assistent (ben namelijk student
aan de unief en we moeten allen dat project proberen maken) dat daar de fout
zit en dat ik zelf een functieobject moet implementeren dat twee 'event*'
vergelijk en dan megeven als comparator obejct aan de queue.
Nu komt dus de vraag: hoe moet ik die functie implementeren en wat is de
syntax van die functie en waar moet die staan (in klasse event, afgelide
klassen, erbuit, apart file ....?) ik weet het dus echt niet en het is het
enige die niet werkt van mijn project.
ik hoop dat het een beetje duidelijk is uitgelegd.
Alvast bedankt om het te lezen, en hopelijk weet er iemand wat ik kan doen
(een hint of zo, of een webpage maar dan niet over trivaile queue met
doubles en int)
Goethals Frederik.
Technical Details
Message-ID:
<3c11dae3$0$27949$ba620e4c@news.skynet.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!louie!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII-7-bit X-Google-Thread: fcea4,fc347145cf14adb4,start X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2001-12-08 01:19:08 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!louie!not-for-mail From: "Goethals Frederik" <frederik.goethals@belgacom.net> Newsgroups: be.comp.programming Subject: C++ functieobjecten als comparator in STL Date: Sat, 8 Dec 2001 10:19:07 +0100 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 Lines: 43 Message-ID: <3c11dae3$0$27949$ba620e4c@news.skynet.be> Organization: -= Skynet Usenet Service =- NNTP-Posting-Host: 217.136.88.56 X-Trace: 1007803107 reader0.news.skynet.be 27949 217.136.88.56 X-Complaints-To: abuse@skynet.be