Mailinglist Archive: opensuse-programming-de (184 mails)
| < Previous | Next > |
Re: <map> oder doch nicht?
- From: Bastian Schern <bschern01@xxxxxx>
- Date: Tue, 28 Oct 2003 16:31:18 +0100
- Message-id: <3F9E8BC6.5060506@xxxxxx>
Michael Matz schrieb:
[...]
[...]
struct ltstr {
bool operator()( flow_key_t& s1, flow_key_t& s2 ) const
{
return( (s1.src_addr+s1.dst_addr) < (s2.src_addr+s2.dst_addr) );
}
};
Viele Grüße
Bastian
[...]
s/typedef// Das ist C++.Was meinst Du denn damit?
[...]
Du brauchst mind. einen operator< auf dem Indextyp. Sonst kann keineWie implementiere ich den?
map<> implementiert werden.
Ups!Leider geht das so nicht. Ich bekomme folgende Fehlermeldung:
trafana.cpp|78| error: template-argument `
|| analyzeAllPackets(std::vector<result_t, std::allocator<result_t>
>&)::ltstr'
Diese Funktion z.B existiert in deinem snippet nicht.
struct ltstr {
bool operator()( flow_key_t& s1, flow_key_t& s2 ) const
{
return( (s1.src_addr+s1.dst_addr) < (s2.src_addr+s2.dst_addr) );
}
};
Ich will ja nicht meinen eigenen Rechner analysieren, sondern das OC-3 Interface eines großen Internet Provider Routers.
Die Frage ist natürlich auch, ob <map> für meinen Anwendungsfall
überhaupt geeignet ist oder ob z.B. eine <hash_map> besser geeignet ist?
<map> ist ISO C++, <hash_map> nicht (macht aber hier nichts aus). <map>
benutzt nen red-black Tree zur Implementierung, <hash_map> ne Hashtabelle.
<hash_map> _koennte_ schneller sein, kommt auf die Hashfunktion und die
Daten an.
Ich denke ich werde so ca. 100000 - 1000000 werte vorhalten müssen.
Sicher, dass du von so vielen unterschiedlichen Leuten connections
bekommst?
Viele Grüße
Bastian
| < Previous | Next > |