Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Welche Datenstruktur benutzen?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
08.04.2005, 15:15 Uhr
~DirkD
Gast


Hallo zusammen,

ich lern gerade ziemlich frisch c++ und hab eine Frage zur stl.
Ich habe sagen wir 50 Objekte, also durchnummeriert von 1 - 50 und wähle von denen eins aus.
Jetzt werden Berechnungen angestellt (in Abhängigkeit des gewählten Objekts und der anderen übriggebliebenen ...), und das nächste Objekt gewählt. Dann geht es immer so weiter.
Ich hab also eine Datenstruktur mit den Elementen 1-50 aus denen nach und nach Objekte gelöscht werden, und eine Datenstruktur in denen nach und nach Elemente eingefügt werden, so dass ich quasi eine Permutation der Zahlen 1-50 erhalte.

Dass ich die Objekte nicht wirklich abspeicher, sondern nur die Zahlen ist klar, aber was benutze ich hierfür am Besten als Datenstruktur.

Für die "neue Liste" wohl am besten einen Vektor, da ich nur am Ende einfüge, in der "anfangsliste" muss aber auf alle Elemente zugegriffen werden und schliesslich irgendwo ein Element gelöscht werden. Ist da eine verketette Liste am besten, oder ein Set?

Vielen Dank schon mal, ich hoffe ich hab mich nicht zu kompliziert ausgedrückt

Ach ja, die 50 Objekte sind natürlich nur ein Beispiel. Anzahl steht zu Beginn nicht fest und kann auch schnell viel größer werden. Deswegen meine Performace-Sorgen

Gruß

Dirk
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.04.2005, 15:51 Uhr
Th



Es kommt darauf, an wie du an die einzelnen Elmente des Datentyps herankommen willst.
Bei einer verketteten Liste, mußt du die Liste einzeln durchlaufen, um das entsprechene Element zu finden, d.h. Effizienz ist O(N). Bei einem Set wird intern ein Baum aufgebaut, so daß die Suche von logarithmischer Effizienz O(log N) ist.

Na, ja 50 Objekte sind wohl kein Performance-Bremser, bei 1000 Objekten pro Sekunde würde ich mir Gedanken, um die Performance machen.

Verwende am besten den Datentyp, der die Funktionen unterstützt, die du auch benötigst. Wenn es dann Performance-Probleme gibt, dann kannst du immer noch einen spezialisierten Datentyp verwenden.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: