|
[ leka @ 24.04.2006. 14:14 ] @
| Pozdrav svima, predlazem da zapocnemo STL (ja to ipak zovem STDC++) diskusiju ovde.
Pre par godina sam presao sa STLport na STLsoft "framework" pakete (pre svega UnixSTL, InetSTL i InetSTL). Toplo preporucujem. Iza ovih paketa stoji jedna jako uvazena licnost: Matthew Wilson (autor sledecih knjiga: "Imperfect C++", "Extended STL").
URL: http://synesis.com.au/software/stlsoft/ |
[ Dragi Tata @ 24.04.2006. 17:15 ] @
Da Matt je zanimljiv momak i stvarno ne znam zašto ne koristim njegove biblioteke. U stvari, posebno mi je interesantna jedna koju još nije dovršio: XMLSTL.
A što se naziva tiče, pod STL-om se obično podrazumeva deo STDC++ biblioteke koji se odnosi na kontejnere, algoritme i iteratore. iostream na primer ne spada u STL.
[ NrmMyth @ 24.04.2006. 22:18 ] @
Citat: Dragi Tata:iostream na primer ne spada u STL.
'iostream' mi je jedan jako ruzan sistem, naprema onome starom definiranom u 'stdio.h'
Citat: leka: Pozdrav svima, predlazem da zapocnemo STL (ja to ipak zovem STDC++) diskusiju ovde.
Pre par godina sam presao sa STLport na STLsoft "framework" pakete (pre svega UnixSTL, InetSTL i InetSTL). Toplo preporucujem. Iza ovih paketa stoji jedna jako uvazena licnost: Matthew Wilson (autor sledecih knjiga: "Imperfect C++", "Extended STL").
URL: http://synesis.com.au/software/stlsoft/
Svidja mi se STL filozofija pa je ovo jako lijepo otkrice za mene, ali, koliko sam na brzinu pogledao, STLsoft nema onaj obicni standardni STL?
[ leka @ 26.04.2006. 09:45 ] @
Ja kad kazem STDC++ mislim na iostream + veci deo STL-a koji je postao deo STDC++-a. :)
Licno mislim da naziv *STL u StlSoft nazivima biblioteka nije bas primeran, jer te biblioteke mozda nikada ne vide ni "S" od standard-a...
U svakom slucaju pomenuti "framework"-ovi su odlicni.
Sto se tice opaske u vezi iostream-a, od strane NrmMyth-a - mislim da se radi o ukusu. Ni ja nisam voleo iostreams jedno vreme... Ceo STDC++ tacnije. No, vremenom se pokaze da jedan covek nema vremena da pise toliko koda sam, tako da mora da "pokupi" dobre stvari, i koristi ih u svojim projektima. Ako je nesto STANDARD, onda je to dobar kandidat za koriscenje, bar sto se mene licno tice. :)
Srecom covek ne mora da koristi iostream u C++-u, vec moze koristiti STDC i POSIX funkcije bez ikakvih problema.
[ Dragi Tata @ 26.04.2006. 12:31 ] @
Glavni problem iostream-a je što je spor.
[ NrmMyth @ 26.04.2006. 20:41 ] @
Tocno! Na natjecanjima se uopce ne isplati koristiti.
[ Buffy @ 27.04.2006. 19:35 ] @
sumnjam da se na takmicenjima moze primjetiti "sporost" iostream-a, jer citanje i pisanje u fajl ne traju dugo.
Nikako mi se neda poceti uciti STL. Mozete li preporuciti neki dobar pdf ili bilo kakav drugi resurs za ucenje.
Takodje, kakve su verzije STL-a koje po default-u dolaze uz Linux distribucije (Slack, Fedora) i kakve su na MinGW? ( mislim na brzinu rada, stednju memorije...)
Pozdrav!
[ RooTeR @ 27.04.2006. 20:35 ] @
Citat: #1130436/ Buffy: sumnjam da se na takmicenjima moze primjetiti "sporost" iostream-a, jer citanje i pisanje u fajl ne traju dugo.
Naprotiv, moze se i te kako primetiti!
[ Dragi Tata @ 27.04.2006. 21:34 ] @
Citat: Mozete li preporuciti neki dobar pdf ili bilo kakav drugi resurs za ucenje.
Nažalost ne znam za baš dobar on-line kurs STL-a. Ovaj je relativno pristojan http://www.pottsoft.com/home/stl/stl.htmlx
Međutim, ima odličnih knjiga na tu temu, a najbolja je verovatno ova: http://www.amazon.com/gp/produ...-6383966?v=glance&n=283155
Citat:
Takodje, kakve su verzije STL-a koje po default-u dolaze uz Linux distribucije (Slack, Fedora) i kakve su na MinGW? ( mislim na brzinu rada, stednju memorije...)
Pozdrav!
GNU verzija C++ standardne biblioteke je odlična u poslednje vreme. Obrati pažnju na ovo "u poslednje vreme", jer ranije (recimo pre 3 godine) nije bila baš slavna. Ako koristiš neku noviju distribuciju, verovatno je sve OK.
[ NrmMyth @ 27.04.2006. 21:54 ] @
Momak zna...
Po meni, najbolja knjiga za STL je ona od Nicolaia Josuttisa, a to je bas ova koju ti je Dragi Tata preporucio.
Jedno pitanje:
Kakav je STL koji dolazi uz VC++ 7 po razini kvalitete, naprema nekim drugim?
[ Buffy @ 28.04.2006. 07:29 ] @
Hvala na linku!
Pa nista, onda takmicenjima koristimo STDC io :)
[Ovu poruku je menjao Buffy dana 28.04.2006. u 08:30 GMT+1]
[ tupito @ 28.04.2006. 13:08 ] @
Citat: #1130644/ NrmMyth: Momak zna...
Kakav je STL koji dolazi uz VC++ 7 po razini kvalitete, naprema nekim drugim?
veoma spor, ako ti brzina neznaci nista onda ga nemoj menjati, ali ako ga koristis na tajm-kritikal delovima koda to je cisto programersko samoubistvo. konkretno u odnosu na STLPort meni je izvrsavanje programa palo sa 30 minuta na 16 minuta kada sam instalirao STLPort. Inace STLPort pored hedera zamenjuje i iostream, bilo statickom ili dinamickom bibliotekom. kako su meni es-ovci objasnili u microsoft ne koriste STL, sto mozda i najbolje govori o njegovom kvalitetu, inace je iz verzije u verziju sve sporiji.
[ NrmMyth @ 28.04.2006. 18:13 ] @
dobro je znati...
[ Filip Strugar @ 08.05.2006. 16:06 ] @
evo bas slucajno naleteh na:
...how to get it (STLPort) working under Visual Studio C++ 7(.net).
http://www.geocities.com/simudream/Tutorial2STLport
[ kiklop74 @ 08.05.2006. 23:42 ] @
Citat: tupito: veoma spor, ako ti brzina neznaci nista onda ga nemoj menjati, ali ako ga koristis na tajm-kritikal delovima koda to je cisto programersko samoubistvo. konkretno u odnosu na STLPort meni je izvrsavanje programa palo sa 30 minuta na 16 minuta kada sam instalirao STLPort. Inace STLPort pored hedera zamenjuje i iostream, bilo statickom ili dinamickom bibliotekom. kako su meni es-ovci objasnili u microsoft ne koriste STL, sto mozda i najbolje govori o njegovom kvalitetu, inace je iz verzije u verziju sve sporiji.
STLport jeste jedna od brzih implementacija ali nikad nisam imao ubrzanje od 50% prostom rekompilacijom. Kvalitet dinklumware STL je trenutno na jako visokom nivou. Nije sve ni u chistoj brzini. Ima neshto i u pouzdanosti i sigurnosti a kome stvarno treba brzina taj ce da sam pise svoj kod od nule. Na kraju krajeva niko ne koristi STL za time critical kod.
Sporost je relativna stvar. Po defaultu dinkumware STL implementacija koja se isporuchuje us VS 8 ima ukljuchene checked iteratore. Kada se to ugasi ubrzanje je primetno.
o tome videti ovde http://msdn2.microsoft.com/en-us/library/y9ww7c1a.aspx
Sto se tiche iostream biblioteke ona defiitivno nije brzinski shampion ali se i tu mogu poboljsati stvari.
Na primer std::ios_base::sync_with_stdio postaviti na false i kad god je moguce raditi sa fajlovima u binarnom modu jer je to dosta brze, zatim ako se cesto koriste odredjene datoteke ucitavati ih kao memorijski mapirane itd.
[ cynique @ 09.05.2006. 11:22 ] @
Može li mi netko objasniti zašto su printf/scanf koje rade runtime parsiranje format stringa brže od cin/cout koji za compile-time odabiru odgovarajuću overloaded metodu?? Ovo drugo je očigledno puno brže... Loši kompajleri? :)
BTW - sjećam se da sam čitao članak koji je uspoređivao ispis newline-a, najsporije je bilo preko std::endl manipulatora, dosta brže sa cout << "\n", a najbrže sa cout << '\n' (primjetite jednostruke navodnike).
[Ovu poruku je menjao cynique dana 09.05.2006. u 15:32 GMT+1]
[ leka @ 10.05.2006. 11:19 ] @
Ivane, tvoj problem je sto printf/scanf automatski vezujes za C. :) C++ takodje koristi oboje. Ako moze STDC++ da obilno koristi STDC, zasto ne bi i neka user-defined klasa?
Dakle, zakljucak je - niko te ne obavezuje da koristis iostream. :)
[ cynique @ 10.05.2006. 13:35 ] @
Ma znam da mogu koristiti STDC fje, ali ih običavam već neko vrijeme zaobilaziti u širokom luku...
Više me zanimalo zašto su C stdio fje brže, kad se čini logičnijim da bio iostreams trebali biti brži pošto ne moraju embedati u kodu format string koji će runtime analizirati library fja, već kompajler može optimizirati direktnim pozivanjem odgovarajućih overloada.
No jedno je izgleda logika, drugo Stvarni Svijet (TM) :)
[ NrmMyth @ 12.05.2006. 19:32 ] @
iostream je klasa i mora paziti na svoja polja (clanove)
ne znam zasto je C io toliko brzi, ali za velike inpute je
Nemoj overloading shvacati kao neko poboljsanje brzine, jer jedan switch-case u scanf i printf nije skup.
Oveloading i template-i su tu prvenstveno zbog jednostavnosti koda i pisanja istoga.
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|