AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Zugehörigkeitsoperator in C++ ?

Ein Thema von PAX · begonnen am 18. Mai 2006 · letzter Beitrag vom 26. Mai 2006
Antwort Antwort
Frickeldrecktuxer_TM
(Gast)

n/a Beiträge
 
#1

Re: Zugehörigkeitsoperator in C++ ?

  Alt 19. Mai 2006, 13:44
Zitat von PAX:
es gibt viele dinge, die mir an c++ gefallen (im vergleich zu delphi), aber dass dann solche sachen wieder so kompliziet sein müssen...
Kompliziert?
In C sind es einfach Bitoperationen, da kannst du sicher sein, daß es kompakt bleibt und du bist nicht auf die Implementierung des Compilers angewiesen (Borland kann sich sowas leisten, die haben keine Konkurrenz):
Code:
typedef SomeSet unsigned int;
const SS_FIRST = 1 << 0; // vorsicht, C99, nicht C89 oder K&R!
const SS_SECOND = 1 << 1;
const SS_THIRD = 1 << 2;
const SS_FOURTH = 1 << 3;

SomeSet myset;
myset = SS_FIRST | SS_THIRD; // SS_FIRST und SS_THIRD im Set
myset |= SS_FOURTH; // SS_FOURTH mit ins Set genommen
myset &= ~SS_FIRST; // SS_FIRST aus dem Set entfernt;
if (myset & SS_THIRD) { }; // wird ausgeführt, wenn SS_THIRD im Set ist
Wenn dir die Bitoperationen in C zu ungewohnt sind, kannst du dir ja Funktionen (in C++ besser Templates) wie SET_INSERT() oder SET_REMOVE() schreiben. Eklig wird es dann nur, wenn dein Set mehr elemente enthalten soll, als deine Plattform Bits in Integern kennt. Mit einem long long int solltest du auf IA32 auf eine Set-Größe von maximal 64 kommen, wenn's mehr sein soll, braucht man mehr Programmlogik, aber machbar ist auch dies (und man schreibt sich seine lib ja nur einmal und bindet sie dann beliebig oft ein).
Unter C++ hast du neben eben genannter klassischen C-Lösung auch noch das Template std::set<>. Ich sehe da nicht, was daran umständlich ist. Ich persönlich finde für systemnahe Programmierung die C-Lösung "schöner" als die Pascal-Lösung, aber umständlich finde ich weder C, noch Pascal, noch C++.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz