PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Suche mit Bitmaske in std::multimap.



Scavenger
17-05-2004, 16:23
Hallo !

Ich schreibe gerade an einen Programm in dem ich die Vererbungshirarchie meiner
Klassen mit Hilfe eines Types kennzeichne:

UINT_32 TYPE = 0x 00 0000 00;

Dieser Type ist dreigeteilt (Kategorie, Unterkategorie, Implementierung).

Alle Objekte werden in einer std::multimap<UINT_32, SimObject*> gespeichert.

Ich möchte nun bestimmte Objektgruppen aus dieser Liste heraussuchen und
bearbeiten.

Dabei möchte ich

nur die Kategorie, also z.B. 0x01 0000 00
Kategorie und Unterkategorie, also z.b. 0x25 0001 00
oder die komplette Implementierung, also z.b. 0x 25 1234 56

angeben können. (Ähnlich einer Subnet Mask bei IP)

In multimap werden alle Werte in absteigender Reihenfolge gespeichert (wenn ich std:less<UINT_32> als comparator angebe.

Wie kann ich aber möglichst einfach den Anfang bzw. Ende der gültigen Objekte finden ?

Hier ein Beispiel:

Inhalt der multimap:

0x01000000
0x02002000
0x02234324
0x02234324
0x03000000

Maske:
0x02000000


Gruß,
Scav