Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

1

02.07.2007, 13:16

Projektplanung Prioritätswarteschlange

Hi,

ich will jetzt eine Prioritätswarteschlange entwickeln. Dazu hab ich allerdings noch ein paar fragen:
1) Soll ich dazu einen Vector oder eine Liste benutzen?(Ich bevorzuge Vectoren, weil ich da schon eine fertige Klasse habe).

2) Mit der Priorität. Soll ich es so machen, wie in der STL, also das man für die verwendete Klasse den < operator definieren muss, oder soll die priorität beim hinzufügen des Elements angegeben werden?

Was meint ihr?

PS: Mit euren Antworten habt ihr durchaus die möglichkeit, das Projekt zu beeinflussen. wenn ihr also die stl nicht mögt, könnt ihr mir ja sagen, was ich besser machen kann.

Zu 1) Ich würde ganz gerne einen Vector nehmen, da ich dafür wie gesagt schon eine klasse hab die alles könnte.
Nur wenn es etwas entscheidendes gibt, was eine Liste sehr viel nützlicher macht, würde ich mri da noch eine coden.


Socke

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

02.07.2007, 13:29

Ich weiss nicht wie deine Vektor Klasse implemtiert ist aber im allgemeinen ist eine Vektor Klasse einfach ein Array im OOP Stil. Da du neue Betriebsmittel sicher einordnen willst während das System läuft wär eine Liste wesentlich angebrachter, da du ja nur die Zeiger neu setzen musst und somit das neue element einfach einketten kannst, ohne das das die anderen Elemente in der Warteschlange interessiert. Bei nem Vektor müsstest du erst Platz machen, alle nach hinten schieben, und einkopieren.

Eine Ordnungsrelation ist sicher bei Prioritäten sinnvoll ;)

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

3

02.07.2007, 13:34

Also die Vectorklasse ist eine Templateklasse mit der man ganz einfach elemente hinzufuegen kann(AddElement) und wieder welche loeschen(DeleteElement beim ersten dann einfach als Paramter 0 angeben).
Ich hätte als wesentlich weniger arbeit, wenn ich den vector benutze.


Socke

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

02.07.2007, 13:41

Nimm doch std::priority_queue aus der STL. Was hast du überhaupt gegen die STL das du unbedingt auf sie verzichten willst?
@D13_Dreinig

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

5

02.07.2007, 13:42

@socke: Hmmmn das Cappu schmeckt wirklich gut.... danke dafür! :?

Es ist mir schon klar das du elmente sicherlich hinzufügen und löschen kannst, aber du hast die Frage nach einer Liste oder einem Vektor gestellt, für mich bedeutet das: du willst wissen was implementierungstechnisch schneller ist und das sind listen, aus den Gründen die ich dir oben schon gesagt hab, ein weiterer Grund steht weiter unten..., unterschiedliche Große Daten sind mit einem Array ja nicht möglich.

Ich weiss nicht wie deine Vektorklasse intern arbeitet, deswegen gehe ich von einem stink normalen Vektor wie er oft anzutreffen ist aus, und in 90% der Fälle ist das einfach ein dynamisches Array.


Auch templates würd ich bei Prioritäen nicht benutzen wozu den?

Nehmen wir mal eine Prioritätswarteschlange eines Betreibssystems. In die Warteschlage können Anfragen von Servern, User Interaktionen, Listen von Interaktionen etc. etc. herein, mit templates würdest du dir den Weg verbauen.

Faule Socke

Community-Fossil

  • »Faule Socke« ist der Autor dieses Themas

Beiträge: 1 915

Wohnort: Schreibtischstuhl

  • Private Nachricht senden

6

02.07.2007, 16:40

Warum ein template? ist doch ganz einfach. damit es möglichst allgemein bleibt.(die stl hat ja auch ne templateklasse) und sry falls wir uns da missverstanden haben. ich wollte dich mti sicherheit net beleidigen oder so.

@David:
Ich bin durchaus bereit, die STL zu benutzen. Es gibt allerdings viele gründe, die dafür sprechen, dass ich sie net benutze:
1) Der Lerneffekt ist größer wenn man erstmal alles selber schreibt.
2) In die STL müsste ich mich erst einarbeiten. Dazu hab ich atm keine Zeit.
3) Die STL passt nicht immer zu 100% in mein konzept.(Das ist zwar noch nie vorgekommen aber es kann ja mal passieren.)
4) Stringklassen etc finde ich, sollte man sowieso erstmal selber machen.
5) Der Stil(namen etc) der STL gefällt mir net.


Socke

7

02.07.2007, 16:53

Zitat von »"Faule Socke"«


....
3) Die STL passt nicht immer zu 100% in mein konzept.(Das ist zwar noch nie vorgekommen aber es kann ja mal passieren.)


Ich kenne keine engine/framework/sdk oder so was immer 100%-ig auf dein Konzept passt. Und warum sollte man Stringklassen selber machen. Glaub mir mal Microsoft weiß, wie sie das machen. Die Klassen (string) und so sind wenigstens safe, schnell und ohne/kaum mit Fehler. wenn du jetzt eine eigne machst, baust viellei noch fehler nei!
http://www.pennergame.de/functions/generate_signature_114955.jpg

Wo die Fähigkeiten aufhören ... fängt der Optimismus an

"Unendlichkeit ist der Mangel an Grenzen" Aristoteles

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

02.07.2007, 16:56

Das mit den Templates stimmt. Haste recht, sry, ich dachte an Java Generics tut mir leid

rewb0rn

Supermoderator

Beiträge: 2 773

Wohnort: Berlin

Beruf: Indie Game Dev

  • Private Nachricht senden

9

02.07.2007, 16:56

die sind nicht von microsoft, aber auf jeden fall auf geschwindigkeit optimiert und es wird im allgemeinen empfohlen die nicht selbst zu schreiben wenns auf geschwindigkeit ankommt, weil man mit großer wahrscheinlichkeit nicht annähernd an deren optimierung rankommt. stl is auf jeden fall das schnellste.

10

02.07.2007, 17:03

nagut nich von microsoft... aber auf jeden fall besser als wenn man es selbe schreiben würde... schnell und safe! Das is wie der WINAPI Timer ... im groben reicht der auch aus... man brauch nich unbedingt ein eigenen(in den meisten fällen)
http://www.pennergame.de/functions/generate_signature_114955.jpg

Wo die Fähigkeiten aufhören ... fängt der Optimismus an

"Unendlichkeit ist der Mangel an Grenzen" Aristoteles

Werbeanzeige