JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=41988e52c0be24bae2b41a8ab09ffd11Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

List und Vector
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 08.01.2004, 22:55    Titel: List und Vector Antworten mit Zitat

Was ist der feine Unterschied zwischen List und Vector?
Worin liegen die Vor- und Nachteile?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 07:56    Titel: Antworten mit Zitat

List : Doppeltverkettete Liste
Am besten, wenn man oft Elemente hinzufügen oder entfernen muss.

Vector : dynamisches Array
Am besten, wenn man direkt auf die Elemente via Indices zugreifen muss.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
xardias
JLI Master


Alter: 38
Anmeldedatum: 28.12.2003
Beiträge: 804
Wohnort: Palo Alto, CA
Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 09:00    Titel: Antworten mit Zitat

Vector ist praktisch nur ein erweiterter Array.
Eine Liste hingegen kann man beliebig erweitern und bearbeiten.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 11:36    Titel: Antworten mit Zitat

Das entscheidende ist AFAIK das du bei list auch Elemente in der mitte löschen kannst. Ein Vektor verwendet man z.B. für eine Matrix!
_________________
http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.

Never touch a running System - der Systemling
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 12:33    Titel: Antworten mit Zitat

Was man vielleicht noch dazusagen sollte:
Die Funktion push_front() gibt es nur bei den STL-Listen. In den STL-vectors ist man gezwungen, das Element mitels push_back() hinzuzufügen.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 19:45    Titel: Antworten mit Zitat

Aber ist das hinzufügen und löschen von Elementen bei Vectoren nicht genauso einfach wie bei Listen?
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 20:14    Titel: Antworten mit Zitat

Alle STL Container sind fast gleich einfach zu bedienen. Aber um sie richtig einzusetzen musst du wissen was sie sind und wie sie funktionieren und vorallem: Wie schnell die Algorithmen bei dem jeweiligen Container sind.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 20:59    Titel: Antworten mit Zitat

LeeDiGer hat Folgendes geschrieben:
Aber ist das hinzufügen und löschen von Elementen bei Vectoren nicht genauso einfach wie bei Listen?

Das würde ich eher nicht sagen. Wie einfach du die Elemente löschen kannst, hängt von der Komplexität des Zugriffs ab.
D.h. bei vectors ist das verhältnismäßig einfach, weil man nur das Element über den operator [] übergeben muss. Bei Listen braucht man dafür einen Iterator, der auf das Element zeigt.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 21:06    Titel: Antworten mit Zitat

Wenn man aus einem Vector löscht, braucht man auch einen Iterator.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 21:22    Titel: Antworten mit Zitat

Ich schaff das aber komischerweise auch ohne:
Code:
vector<int> vec(10);
vec.erease(&vec[0]);


(Glaub ich zumindest Razz )
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...


Zuletzt bearbeitet von The Lord of Programming am 12.01.2004, 21:10, insgesamt 2-mal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 21:30    Titel: Antworten mit Zitat

Du glaubst falsch.
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 22:51    Titel: Antworten mit Zitat

Dann wirf doch mal nen Blick in die entsprechende Implementierung und lass dich vom gegenteil überzeugen, da sind sehr wohl Iteratoren drinne Wink

cu Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LeeDiGer
Super JLI'ler



Anmeldedatum: 31.08.2003
Beiträge: 366
Wohnort: Duisburg
Medaillen: Keine

BeitragVerfasst am: 09.01.2004, 22:52    Titel: Antworten mit Zitat

Ich weiß jetzt nur, dass man bei Vectoren mit Indizes auf Elemente zugreifen kann. Elemente hinzufügen und löschen ist von der komplexität doch etwa gleich, meine ich. Das wo liegt dann der Vorteil einer liste? Kann doch nicht sein, dass ein Vector einfach besser ist und die Liste einfach nur so dabei ist.
_________________
Kein Rückzug! Kein Aufgeben!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 10.01.2004, 12:23    Titel: Antworten mit Zitat

Komisch, wieso hats dann immer funktioniert? Rolling Eyes

@LeeDiGer: Wie gesagt - bei Listen kann man - anstatt wie bei vectors nur hinten - auch vorne Elemente einfügen.
Außerdem wird AFAIK der vector jedesmal vollständig neuerzeugt, wenn ein Element hinzugefügt wird. Eine Liste wird nur umgeschrieben.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Kampfhund
Super JLI'ler


Alter: 42
Anmeldedatum: 20.07.2002
Beiträge: 408

Medaillen: Keine

BeitragVerfasst am: 10.01.2004, 16:54    Titel: Antworten mit Zitat

das neuerzeugen kann man afaik mit reserve(x) verhinder.
ist praktisch ein array mit x elementen. wenn allerdings das array voll ist und neue elemente hinzugefügt werden muss das array neu angelegt werden.
der vorteil liegt beim vector darin, dass man sehr schnell auf die einzelnen elemente zugreifen kann.

eine liste ist afaik eine einfach oder doppelt verkettete liste.
dh die daten liegen nicht wie beim array hintereinander im speicher sondern irgendwo verteilt und sind mit zeigern verbunden. der vorteil hierbei ist, dass neue elemente leichter eingefügt werden können (es werden einfach die zeiger aktualisiert während beim vector das ganze array neu angelegt werden muss). Die Zugriffsgeschwindigkeit ist hier niedriger als beim vector, da man erst von listenelement zu listenelement springen muss um zum angeforderten listenelement zu kommen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum