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

1

17.03.2012, 12:15

Arrays, Vektoren, sf::Vektoren und boost... was ist wann das Sinnvollste?

Hey,

ich programmiere jetzt seit 4 tagen C++ und muss sagen das es gar nicht so schwer scheint wie viele behaupten. ich komme aus der webentwicklung und daher ein php nerd.

ich habe jetzt mit c++, sfml und boost mein erstes kleines top-view rennspiel gebaut. nun wollte ich aber meine kenntnisse ein bissien ausbauen und daher fragen wann man was am besten verwendet. für mich ist das eine ganze flut an möglichkeiten da in php ja eigentlich nur arrays verwendet werden.

meine frage ist halt wann arrays, vektoren, sf::vektoren und boost eigenschaften das sinnvollste sind. ins besondere wenn man eine map (2D oder 2.5D) speichern will oder alle spieler (bzw. die pointer) in einem haben will... ich blicke da nicht so ganz durch. gibt es da vielleicht ne übersicht oder könnt ihr mir da helfen?

lg
philipp

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

17.03.2012, 12:21

Arrays sind in C++ im Gegensatz zu PHP mehr oder minder statisch was die Anzahl ihrer Elemente angeht und sind anfällig für Index-Fehler beim Ansprechen. Vektoren sind dynamisch und weisen Dich auf solche Fehler sofort hin. Boost sehe ich in diesem Zusammenhang irgendwie eher nicht.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

17.03.2012, 12:30

Hey danke für die schnelle Antwort.

Ja boost ist für mich auch noch ein riesiger unübersichtlicher Haufen für mich. Aber es wird.


Also wenn ich z.b. die Map speicher ist ja den das in nem 2 Dimensionalen Array immer noch am schlausten. Sie bleibt so und wird einfach mit array[x][y] aufgerufen. Spieler den eher in Vektoren gut.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

4

17.03.2012, 15:35

Sehe ich auch so. Eine Map (Spielplan, nicht der Datentyp) lässt sich gut in einem Array aufheben, da ist klar, dass es sich um etwas statisches handelt und man kein unnützes Drumherum. Spieler sind eher eine dynamische Anzahl, also gut für einen Vektor. Jup.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

5

17.03.2012, 17:08

Also normale Arrays würde ich eigentlich nie mehr verwenden. std::vector ist da sehr viel bequemer und robuster, oder natürlich std::string für strings. Je nach Einsatzgebiet gibt es auch noch eine Menge anderer Container, std::lsit oder std::map zum Beispiel. Du solltest dir einfach klar machen, wo die jeweiligen Vor- und Nachteile liegen und dann von Fall zu Fall entscheiden, was am sinnvollsten ist.
Lieber dumm fragen, als dumm bleiben!

6

17.03.2012, 19:46

Hm... so ne Tabelle "A für ..., B für ..." gibts nicht ne? :)
genau das ist es, was mich bisher so verwirrte.

7

17.03.2012, 20:25

Assoziative Container wie map?

8

17.03.2012, 20:30

http://www.cplusplus.com/reference/stl/

Du kannst dir durchlesen, welche Operationen welche Laufzeit haben. Wenn du dir dann noch das Grundsätzliche Prinzip hinter den Container klar machst, kannst du eigentlich sehr gut entscheiden, welcher wann gut ist.
Lieber dumm fragen, als dumm bleiben!

9

18.03.2012, 21:18

Arrays kann man eigentlich ziemlich komplett ersetzen durch Vektoren, Maps u.ä. Sie sind also IMO mehr oder weniger obsolet.

Werbeanzeige