Mailinglist Archive: opensuse-programming-de (184 mails)

< Previous Next >
<map> oder doch nicht?
  • From: Bastian Schern <bschern01@xxxxxx>
  • Date: Tue, 28 Oct 2003 12:26:48 +0100
  • Message-id: <3F9E5278.5050602@xxxxxx>
Hallo,

ich habe ein PacketFile (tcpdum, libpcap) und möchte feststellen, wie oft eine bestimmte IP Kombination aufgetreten ist.

Ich habe mir das folgendermaßen gedacht:

//...

typedef struct flow_key_t {
uint32_t src_addr;
uint32_t dst_addr;
};

//...

int main( ... )
{
map<flow_key_t, uint64_t> flow_keys;

for( pkt_num_t i=0; i<total_packets; i++ ) {
pReader.nextPacket();
flow_key_t flow_key = pReader.getFlowKey();
flow_keys[ pReader.getFlowKey() ] += 1;
}

//...
}


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'
|| uses local type `analyzeAllPackets(std::vector<result_t,
|| std::allocator<result_t> >&)::ltstr'
trafana.cpp|78| error: ISO C++ forbids declaration of `flow_keys' with no type

Wie mache ich das am besten und ist <map>?
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?
Ich denke ich werde so ca. 100000 - 1000000 werte vorhalten müssen.

Viele Grüße
Bastian


< Previous Next >