Hi, On Tue, 28 Oct 2003, Bastian Schern wrote:
typedef struct flow_key_t {
s/typedef// Das ist C++.
uint32_t src_addr; uint32_t dst_addr;
};
//...
int main( ... ) { map<flow_key_t, uint64_t> flow_keys;
Du brauchst mind. einen operator< auf dem Indextyp. Sonst kann keine map<> implementiert werden.
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.
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? Ciao, Micha.