Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
01.09.2004, 16:55
common



folgendes problem

wir haben ~256 verschiedene events die alle auftreten koennen, wir haben fuer jedes event ein
#define EVENT_FOO 0x000000000001
#define EVENT_BAR 0x000000000002

die events sind uniq, also sollten dann auch die flags uniq sein
fuer 256 flags brauch ich nun sage und schreibe ein 64byte grosses teil zum drinrumshiften
long long int hat immerhin 8 ...

stl hat nen template namens bitset
usage is sehr einfach, aber man kann kein bitset mit EVENT_FOO vergleichen
ich moechte keine 256 instanzen von bitset spawnen die dann irgendwo ungebraucht rumgammeln, ich moechte das halbwegs intelligent loesen

wenn hier jemand ne idee haben sollte, wie man das halbwegs sauber und skalierbar machen kann, ich bin dankbar

hf

--


Dieser Beitrag wurde am 01.09.2004 um 23:49 von theDon bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
01.09.2004, 18:05
Onkel Dittmeyer



Wieso Flags, warum nicht ne' Enumeration?
Quellcode:enum Event_e
{
    EVENT_FOO = 0,
    EVENT_BAR,
    EVENT_EEE,
    //...
}

--

zum Seitenanfang zum Seitenende Profil || Suche
002
01.09.2004, 18:11
Mazze



Genau, wenn sich die Events ausschließen machst du das am besten mit enum.

Ansonsten, warum soll bitset nicht gehen?

Quellcode:#define EVENT_FOO 0x000000000001
#define EVENT_BAR 0x000000000002

int main(void)
{
    bitset<256> b;

    b.set(EVENT_FOO);

    if(b.test(EVENT_FOO))
        cout << "foo" << endl;

    if(b.test(EVENT_BAR))
        cout << "bar" << endl;

    return 0;
}
Matze

PS: 256 / 8 = 32 Byte

--

BattleTech-MOD:
http://bthl.unitedgaming.net/


Dieser Beitrag wurde am 01.09.2004 um 18:11 von Mazze bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
02.09.2004, 00:14
common



k
enum && bitset bringens

danke

--

zum Seitenanfang zum Seitenende Profil || Suche
004
02.09.2004, 09:32
Prefect



Übrigens ist std::vector<bool> typischerweise auch so spezialisiert, dass pro Eintrag nur ein Bit verwendet wird.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche