McAffey Temat założony przez niniejszego użytkownika |
Bezpośrednie wprowadzanie danych do wektra » 2011-01-22 17:49:57 Witam! Jak wprowadzam dane do wektora (na jego koniec) to wprowadzam je w taki sposób : cin >> zmiennaprzejsciowa; zmienna.push_back( zmiennaprzejsciowa ); I tu się rodzi moje pytanie, czy da się jakoś wprowadzać dane bezpośrednio do wektora ? Tzn bez konieczności użycia jakiś postronnych zmiennych. Na zasadzie cin >> zmienna.push_back(); (oczywiście to jest tylko zobrazowanie problemu, a ww kod jest nie poprawny). Z góry dziękuję za pomoc. Pozdrawiam |
|
malan |
» 2011-01-22 17:54:33 Yhym. int n; std::vector < int > wtf;
std::cin >> n; wtf.resize( n );
for( int i = 0; i < n; i++ ) std::cin >> wtf[ i ];
Jakoś takoś ;p |
|
dmx81 |
» 2011-01-22 18:01:42 tylko, ze i tak wymaga wprowadzenia dodatkowej zmiennej dla okreslenia rozmiaru wektora, a poza tym bardzo cie to ogranicza - nie mozesz wiecej znakow wprowadzic niz to okreslisz (taki wektor to nie wektor:P) i trzeba by wprowadzic funkcje, ktora w razie czego skopiuje ten wektor, utworzy nowy dluzszy, wklei stary mniejszy, usunie ten mniejszy itd... wiec pierwszy sposob chyba duzo lepszy? byc moze istnieje sposob aby "bezposrednio" wprowadzac dane ( wektor jest na okreslony typ - w funkcji push_back podajemy wlasnie obiekt tego typu (i raczej tez funkcje zwracajaca wlasnie obiekt tego typu), wiec moze jakos da sie pokombinowac ;) ) w.push_back(( rzutowanie_na_zmienna ) cin >> costam );
vector < char > w; char c; w.push_back( cin >> c );
sprawdz czy dziala i napisz;D sam jestem ciekawy |
|
malan |
» 2011-01-22 18:05:44 @dmx81: Czy std::cin zwraca to, co wczytał? |
|
dmx81 |
» 2011-01-22 18:07:43 no ok, ewentualnie uzyc metod get() lub getline(), chodzi mi o pomysl, jakby to wykombinowac :)
bo raczej ten pierwszy daje zbyt duze ograniczenia, jak myslisz?
ps. te metody tez nie zwracaja tego co trzeba, ale mozna jakos to sobie zakodowac - napisac funckje, ktora bedzie zwracala to co w cin wpiszemy, a to wlasnie wrzucac do wektora :) tylko czy o to chodzi i to takie krazenie gdzies, zamiast wykorzystac to, co zwykle sie robi...
|
|
McAffey Temat założony przez niniejszego użytkownika |
» 2011-01-22 18:26:10 @malan, dmx81 odpowiedział Ci to co ja bym Ci odpowiedział. @dmx81 nie działa mi twój sposób, chyba jednak najlepsze (bo najprostsze) jest rozwiązanie z pierwszego posta. Tak czy siak dzięki wielkie za fatygę ;) |
|
dmx81 |
» 2011-01-22 18:38:20 tez mi sie tak wydaje, ze najlepsze (najlepsze mi znane) - a te sposoby to tylko pomysly ktore przyszly do wyprobowania :) przypuszczalem, ze nic z nich nie bedzie, ale dobrze, ze sprawdziles. tak jak mowie, pewnie moznaby napisac funkcje zwracajaca to, co napiszemy i ja wrzucac do wektora, ale chyba wygodniej jest tak jak jest ;) |
|
dmx81 |
» 2011-01-22 19:04:57 vector < char > w; w.push_back( cin.get() ); for( int i = 0; i < w.size(); i++ ) cout << w[ i ];
a probowales w taki sposob?? u mnie dziala, tzn wyswietlam na koncu wektor, zeby sprawdzic, co sie zapisalo i jest to, co wpisalem w cin, o to chodzilo? |
|
« 1 » 2 3 |