Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Incijalizacija STL kontejnera

[es] :: C/C++ programiranje :: Incijalizacija STL kontejnera

[ Pregleda: 2854 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

*Maya*

Član broj: 67803
Poruke: 2
*.adsl.net.t-com.hr.



Profil

icon Incijalizacija STL kontejnera15.09.2005. u 09:41 - pre 226 meseci
Pozdrav svima. :)

Ono što sam željela napraviti je, dakle, incijalizirati STL kontejner sa elementima iz standardnog inputa :

Code:

std::deque<int> c(std::istream_iterator<int>(std::cin),std::istream_iterator<int>());


Međutim, dobivam obavijest o sintaksnoj grešci. Koristim GCC/G++. Zbog čega ?

Unaprijed se zahvaljujem na odgovoru.
 
Odgovor na temu

tosa
上海, 中国

Član broj: 1811
Poruke: 1342
*.ubisoft.com.cn.

ICQ: 14293955
Sajt: https://github.com/milost..


+48 Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 10:55 - pre 226 meseci
probaj da uklonis std:: iz std::cin, a mozes i na ostalim mestima

Code:

using namespace std;
deque<int> c(istream_iterator<int>(cin),istream_iterator<int>());

 
Odgovor na temu

danio
Danijel K
nema sanse
Varsava, Poljska

Član broj: 67203
Poruke: 50
*.acn.waw.pl.



Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 12:28 - pre 226 meseci
Meni radi tocno kao sto si ti napisao samo moras imati odgovrajuce include: <iterator> i <stack>. Neznam u kojem include-u je dequeue ali izgleda da ga stack koristiti :)

Jos jedna stvar. Kraj iteratora je malo cudan. Izgleda da ucitavanje zvrsava samo ako se desi neka greska. Meni bi se vise svidjalo ako bi zavrsavalo nekim konkretnim simbolom ili signalom. Isto bi bilo dobro razlikovati ako je doslo do greske ili ako je sve dobro ucitano...
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.varmdo.se.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 12:34 - pre 226 meseci
Majo (ili kako se vec zoves), sledeci put, kada pricas o gresci koju javlja kompajler, onda bi bilo dobro da pejstujes sve sto kompajler javlja, da bi mogli da "provalimo" gde je greska. Takodje bi bilo jako dobro kada bi pejstovala kompletan kod, a ne samo liniju gde Ti mislis da je greska. :)
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.americas.bgsinternal.com.



+6 Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 13:19 - pre 226 meseci
Citat:
danio: Jos jedna stvar. Kraj iteratora je malo cudan. Izgleda da ucitavanje zvrsava samo ako se desi neka greska. Meni bi se vise svidjalo ako bi zavrsavalo nekim konkretnim simbolom ili signalom. Isto bi bilo dobro razlikovati ako je doslo do greske ili ako je sve dobro ucitano...


Jok, kraj je kad naiđe na eof.
 
Odgovor na temu

danio
Danijel K
nema sanse
Varsava, Poljska

Član broj: 67203
Poruke: 50
*.acn.waw.pl.



Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 13:31 - pre 226 meseci
Kraj je isto i kad naidje na gresku (np. na slova umjesto brojki). Kako razlikovati jedno od drugog?
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
*.varmdo.se.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 13:48 - pre 226 meseci
danio, napisi prosto programce i proveri svoju tvrdnju...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

Dragi Tata
Malo ispod Kanade

Član broj: 1958
Poruke: 3906
*.americas.bgsinternal.com.



+6 Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 14:03 - pre 226 meseci
Citat:
danio: Kraj je isto i kad naidje na gresku (np. na slova umjesto brojki). Kako razlikovati jedno od drugog?


Mislim ovako:

Code:

if (cin.eof()) 
//onda je eof
else
//greska


Iskreno, nisam probao, ali čiča Bjarne je dao jedan sličan primer:

http://www.research.att.com/~bs/bs_faq2.html#simple-program

 
Odgovor na temu

*Maya*

Član broj: 67803
Poruke: 2
*.adsl.net.t-com.hr.



Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 14:33 - pre 226 meseci
Možda nekome zatreba. :)

Dakle, ovaj način 'UVIJEK'(isključujući neke verzije GCC/G++) radi kako treba :

Code:

std::deque<int> c((std::istream_iterator<int>(std::cin)),(std::istream_iterator<int>()));


Eh, sad. Ovaj način ponekad radi, a ponekad ne:

Code:

std::deque<int> c(std::istream_iterator<int>(std::cin),std::istream_iterator<int>());




I na kraju način koji je meni trebao, jer koristim GCC/G++(verziju 3.3).

Code:

std::deque<int> c((std::istream_iterator<int>(std::cin)),std::istream_iterator<int>());


Zbog čega ? Nažalost, moje znanje nije bilo dostatno za potpuno razumijevanje 'rješenja'. :)


Srdačni pozdrav,

Maya





[Ovu poruku je menjao *Maya* dana 15.09.2005. u 15:49 GMT+1]
 
Odgovor na temu

danio
Danijel K
nema sanse
Varsava, Poljska

Član broj: 67203
Poruke: 50
*.acn.waw.pl.



Profil

icon Re: Incijalizacija STL kontejnera15.09.2005. u 19:22 - pre 226 meseci
Citat:
leka: danio, napisi prosto programce i proveri svoju tvrdnju...


Jesam, zato i pitam.

Citat:
Dragi Tata: Mislim ovako:

Code:

if (cin.eof()) 
//onda je eof
else
//greska


Iskreno, nisam probao, ali čiča Bjarne je dao jedan sličan primer:

http://www.research.att.com/~bs/bs_faq2.html#simple-program


Mislim da je to dobar nacin. Hvala....
 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..31.216.81.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Incijalizacija STL kontejnera16.09.2005. u 06:14 - pre 226 meseci
Sto se loseg inputa tice, tu ne moze puno pomoci eof(), za ispitivanje toga sluze bad(), good(), fail(), rdstate() metodi... No, mislim da smo odlutali daleko od teme...
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

[es] :: C/C++ programiranje :: Incijalizacija STL kontejnera

[ Pregleda: 2854 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.