Article View: be.comp.programming
Article #1710Re: Rare C++ fout (std::map)
From: Aquila
Date: Wed, 15 Dec 2004 10:20
Date: Wed, 15 Dec 2004 10:20
46 lines
2433 bytes
2433 bytes
Niels Basjes wrote:
> Je gebruikt een class als index voor een map:
>> static std::map<const PossibleState,int>��H;
>
Ja omdat ik wil indexeren op PossibleState
> Wat verwacht jij dat code als dit doet ?
>> H[PossibleState(true)] = 8;
>
Dat in de map op index PossibleState(true) de waarde 8 wordt ingevuld, dus
dat als ik indexeer op een PossibleState(true) dat daar 8 uit komt.
> Elke keer dat ik deze regel aan roep zal er een nieuw object gemaakt
> worden en dus een nieuwe array index.
>
Zoals ik het begreep test de map via operator< op gelijkheid dus moet dat
maar een object zijn. Doe de test:
#include <map>
#include <iostream>
class Klasse{
public:
Klasse(int x): fX(x) {};
bool operator<(const Klasse& k) const{
return fX < k.fX;
}
private:
int fX;
};
int main(){
std::map<Klasse,int> mapje;
mapje[Klasse(1)] = 2;
std::cout << &mapje.begin()->first << "\n";
mapje[Klasse(1)] = 3;
std::cout << &mapje.begin()->first << "\n";
}
Volgens jou moet dat twee verschillende adressen geven, maar zowel gcc als
icc geven hetzelfde adres, telkens opnieuw.
Of vergis ik mij volledig?
--
"May the source be with you"
Technical Details
Message-ID:
<boOdnbm1OZZ2kl3cRVnyvA@scarlet.biz>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.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> <4a10s09b2igpphgofpi5e2tn2quv4pqe6m@4ax.com>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!news3.google.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:20:26 -0600 From: Aquila <braempje@netscape.net> Subject: Re: Rare C++ fout (std::map) Newsgroups: be.comp.programming Date: Wed, 15 Dec 2004 11:20:25 +0100 References: <ZJKdne45LpA4YyLcRVnyvA@scarlet.biz> <4a10s09b2igpphgofpi5e2tn2quv4pqe6m@4ax.com> User-Agent: KNode/0.8.1 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Message-ID: <boOdnbm1OZZ2kl3cRVnyvA@scarlet.biz> Lines: 46 NNTP-Posting-Host: 81.11.150.5 X-Trace: sv3-6CbZ2hKCCqwycqB0o99/SuiTPQAEOGZTUnkBCn5zlbsqXw93sbJLPTfJ1N+fhUHXKZbOCzLFgcS+HL2!Eg2OpW9nAO7ZcwAgHSexv1066j1O5qz7LIvjVa8FT7+1l6aDNXS60JzzO5zbeywqkxVDt3sE 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