Article View: be.comp.programming
Article #1709Re: Rare C++ fout (std::map)
From: Aquila
Date: Wed, 15 Dec 2004 10:13
Date: Wed, 15 Dec 2004 10:13
23 lines
2316 bytes
2316 bytes
Arnold Hendriks wrote:
> Als je je operator bijvoorbeeld als turning < state.turning definieert,
> dan zou de compare wel moeten werken. Nu de compare niet strict is, deugt
> de sortering niet en dat kan best verklaren waarom de find() functie niet
> goed werkt.
Je hebt gelijk, ik had daar een < moeten gebruiken. Nu ben ik er nog niet
want dat was een (domme) vereenvoudiging. Normaal bestaat possiblestate uit
een positie pos, een direction dir en een boolean turning. Maar ik wil dat
die laatste 2 genegeerd worden want dat mag in die map geen verschil maken.
Dus heb ik:
bool PossibleState::operator<(const PossibleState & state) const{
return (getPos().x < state.getPos().x) || (getPos().y < state.getPos().y);
}
Is dat ook verkeerd met die strict weak ordering? Ik heb eens gekeken op
<http://www.sgi.com/tech/stl/StrictWeakOrdering.html> en dan zou ik niet
voldoen aan antisymmetrie: (4,4) < (4,4) is false maar het omgekeerde is
niet true zoals geοΏ½ist...
Bedankt voor uw hulp!
--
"May the source be with you"
Technical Details
Message-ID:
<AsednWZ6OKynk13cRVnyuw@scarlet.biz>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!newsread.com!newsprint.newsread.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.scarlet.biz!news.scarlet.biz.POSTED!not-for-mailReferences:
<ZJKdne45LpA4YyLcRVnyvA@scarlet.biz> <cpp19f$ipt$1@netlx020.civ.utwente.nl>Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,f50cab2f57916087 X-Google-Attributes: gidfcea4,public X-Google-Language: DUTCH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news1.google.com!newsread.com!newsprint.newsread.com!news.glorb.com!border1.nntp.dca.giganews.com!nntp.giganews.com!local1.nntp.dca.giganews.com!nntp.scarlet.biz!news.scarlet.biz.POSTED!not-for-mail NNTP-Posting-Date: Wed, 15 Dec 2004 04:13:14 -0600 From: Aquila <braempje@netscape.net> Subject: Re: Rare C++ fout (std::map) Newsgroups: be.comp.programming Date: Wed, 15 Dec 2004 11:13:14 +0100 References: <ZJKdne45LpA4YyLcRVnyvA@scarlet.biz> <cpp19f$ipt$1@netlx020.civ.utwente.nl> User-Agent: KNode/0.8.1 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Message-ID: <AsednWZ6OKynk13cRVnyuw@scarlet.biz> Lines: 23 NNTP-Posting-Host: 81.11.150.5 X-Trace: sv3-X6cP+7OYXb6q5aBhqgHFkECEFs/yaaOiltjUip79rzc8x0fQOZtXEI0162zVjk1LgxQ4ZL5lN6w8O40!XNHiPJ/w0aAgy7gaUVfbBMx1aQFvYB8+mVfyfsfwIADkyEW6IOCR1F77qMcSqfU0mu2ZLAp3 X-Complaints-To: abuse@scarlet.be X-DMCA-Complaints-To: abuse@scarlet.biz X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.3.20