.[ ČeskéHry.cz ].
Pouzivat STL kontejnery ci psat vlastni datove struktury

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
Mantharis



Založen: 28. 07. 2007
Příspěvky: 39

PříspěvekZaslal: 22. duben 2009, 11:46:45    Předmět: Pouzivat STL kontejnery ci psat vlastni datove struktury Odpovědět s citátem

Zdravim, chtel bych se zeptat na vasi zkusenost s STL kontejnery v aplikacich kde je rychlost programu prioritou (napriklad treba ty hry ktery se tu docela resej).

Obecne pouzivat nebo si radsi psat vlastni podmnoziny napriklad vectoru a listu?

Mam pocit ze je furt dost lidi ktery to zaryte ignorujou stim ze "do toho nevidej" a tak si radsi pisou vlastni podmnoziny techto kontejneru...tak by me zajimala vase zkusenost Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Mem



Založen: 28. 07. 2007
Příspěvky: 1959
Bydliště: Olomouc

PříspěvekZaslal: 22. duben 2009, 11:48:07    Předmět: Odpovědět s citátem

Já jsem používal v STL třeba <list> běžně (třeba tady http://nepsin.com/bs/) a neměl jsem nějaký problém s výkonem
_________________
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
yaqwsx



Založen: 25. 02. 2008
Příspěvky: 66

PříspěvekZaslal: 22. duben 2009, 12:37:52    Předmět: Odpovědět s citátem

STL je velice dobře napsaná a velice rychlá. Je však utno dobře vybíat struktury - ne na všecho se hodí vector...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
OndraSej



Založen: 28. 07. 2007
Příspěvky: 765
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 22. duben 2009, 12:55:52    Předmět: Odpovědět s citátem

STL je celkem rychle, uspesne jsem to pouzival i v ruznych pocitacich programech. Spis nez na psani vlastnich struktur je potreba si dat pozor na to, kdy se treba pri predavani parametru obsah kontejneru kopiruje a kdy ne (aneb predavej reference vsude, kde to jde).

Ale jinak si myslim, ze pokud svoji hru potrebujes optimalizovat zrychlovanim kontejnerovych operaci, tak mas mnohem vetsi problem nekde jinde.
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
MD



Založen: 29. 07. 2007
Příspěvky: 437
Bydliště: Praha

PříspěvekZaslal: 22. duben 2009, 13:04:33    Předmět: Odpovědět s citátem

Doporucuju se naucit a pouzivat.
1) Rychlejsi vyvoj a nadelate tam mene chyb, nez kdyz si kazdy programator kazdou silenou strukturu nabastli sam.
2) Bude to rychlejsi - asi proto, ze kontejnery jako set, map, hash_map se jednoduse pouzivaji, takze programatori radostne naimplementuji algoritmy s nizkou asymptotickou slozitosi. Naproti tomu, kdyz si vse musite psat sami, budete lini, skoncite u int*, pouzijete linearni prochazeni a pod. -> a slozitost je razem nekde uplne jinde.

Pak je tu obava, ze clovek nad tim nema uplnou kontrolu a nevi co se deje uvnitr a boji se, zda to neni pomale. Nebojte se, pripadne zpomaleni je NAPROSTO nepodstatne. Pokud se bojite skryte vyvolavanych copyconstructoru, zkuste objekty predavat referenci.
Jestlize je hra nekde pomala, bude tam jedno kriticke misto (bottle neck), tohle chce najit a zoptimalizovat, vsude jinde muzete bez obav pouzivat stl. A ani na tom kritickem miste to pravdepodobne nebude zpomalene diky stl.
_________________
- play with objects - www.krkal.org -
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Mantharis



Založen: 28. 07. 2007
Příspěvky: 39

PříspěvekZaslal: 22. duben 2009, 13:39:45    Předmět: Odpovědět s citátem

No a pri uziti toho STL...da se to nejak rozumne profilovat?

...s profilerem sem teda zacal kvuli problemum s vykonem pracovat teprve nadavno tak mozna ho jen blbe pouzivam (pouzivam ten co je ve VS 2008)

U toho STL mi pri profilovani celkem vadi ze nekdy profiler vypise nejakou hluboce zanorenou metodu ktera treba stoji podezrele hodne vykonu a jen s velkym usilim se clovek dopidi k nejakejm "vyssim metodam" ktery tuto metodu volaji aby si na ne clovek dal pozor a omezil jejich pouzivani.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
VladR



Založen: 30. 07. 2007
Příspěvky: 1322
Bydliště: Greater New York City Area

PříspěvekZaslal: 22. duben 2009, 13:43:37    Předmět: Odpovědět s citátem

Ak sa s tym len tak z nudy hras doma, a bavi ta to, tak preco nie, len take zverstva nerob v praci.

Pokial mas problem s vykonom ohladom kontajneru, tak si na 99.5% spravil na zaciatku chybny vyber druhu kontajneru.

Nenapises to rychlejsie.

Navyse, naco by si to robil ? Pises si pre vlastnu potrebu C++ kompilator ?

STL JE sucast C++,treba si len zvyknut a trocha o tom precitat, kedy je vhodne ktory pouzit (vzhladom na pam.a vyk.narocnost pri copy/realloc), tot vsjo...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Tringi



Založen: 28. 07. 2007
Příspěvky: 289

PříspěvekZaslal: 22. duben 2009, 16:09:52    Předmět: Odpovědět s citátem

Nemůžeš-li se rozhodnout Arrow Použij STL
Myslíš-li si že STL bude pomalé Arrow Použij STL
Je-li program s STL pomalý Arrow Použij jiný kontejner, jiný algoritmus, ...
Padá-li to s STL Arrow Použij STL správně

Máš-li správný kontejner, správné algoritmy a stále je to pomalé, pak máš úzké hrdlo jinde ...a nebo řešíš příliš náročný problém pro daný hardware.

Nitpickers corner:
STL není součást C++, STL je/byla knihovna od SGI, jejíž část byla přijata do standardu (a to ještě v pozměněné formě). V celém standardu se nikde zkratka STL nevyskytuje, zmíněné kontejnery a algoritmy jsou společně funkcemi a makry přejatými z C a s dalšími součástí jedné velké C++ Standard Library Cool
_________________
WWW | GitHub | TW
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
ladik-BigBoss



Založen: 28. 07. 2007
Příspěvky: 158

PříspěvekZaslal: 23. duben 2009, 02:22:11    Předmět: Odpovědět s citátem

použij STL, pokud ti nejde vyloženě o věci jako pole vertexů, které jdou rovnou na GPU přes 3D API. tam je zbytečné to uchovávat v STL kontejneru, jenom přesunuješ paměť
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Yossarian



Založen: 28. 07. 2007
Příspěvky: 274
Bydliště: Šalingrad

PříspěvekZaslal: 23. duben 2009, 08:49:54    Předmět: Odpovědět s citátem

Ja pouzivam STL, s jednou vyjimkou - string, ten jsem si napsal vlastni, kvuli potrebe copy-on-write.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna