Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Bezpośrednie wprowadzanie danych do wektra

Ostatnio zmodyfikowano 2011-01-22 21:36
Autor Wiadomość
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 :
C/C++
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
P-26842
malan
» 2011-01-22 17:54:33
Yhym.
C/C++
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
P-26844
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 ;) )

C/C++
w.push_back(( rzutowanie_na_zmienna ) cin >> costam ); //nie wiem, moze cos takiego? byc moze nawet bez rzutowania da rade

vector < char > w;
char c;
w.push_back( cin >> c );

sprawdz czy dziala i napisz;D sam jestem ciekawy
P-26846
malan
» 2011-01-22 18:05:44
@dmx81: Czy
std::cin
 zwraca to, co wczytał?
P-26849
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...
P-26850
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ę ;)
P-26853
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 ;)
P-26854
dmx81
» 2011-01-22 19:04:57
C/C++
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?
P-26855
« 1 » 2 3
  Strona 1 z 3 Następna strona