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

Pobieranie wartości

Ostatnio zmodyfikowano 2011-03-12 09:20
Autor Wiadomość
BlackDante
Temat założony przez niniejszego użytkownika
Pobieranie wartości
» 2011-03-11 21:24:15
Witam mam kolejny problem, tym razem chyba bardziej błahy, mianowicie jako wejście moj program ma pobierać coś takiego:

4
1 2 3 4
 
w pierwszej lini liczbę argumentów a w drugiej argumenty oddzielone spacjami. I tutaj pojawia się moje pytanie, czy istnieje jakiś prosty sposób na wczytywanie tak zmiennej ilości argumentów z jednej lini, czy muszę wszystko wczytać do stringa i potem go dzielić po spacjach?
P-29082
malan
» 2011-03-11 22:52:39
C/C++
#include <iostream>
#include <vector>

int main()
{
    std::vector < int > numbers;
    int count = 0, num = 0;
   
    std::cin >> count;
   
    for(; count > 0; --count )
    {
        std::cin >> num;
        numbers.push_back( num );
    }
   
    for( std::vector < int >::iterator it = numbers.begin(); it != numbers.end(); ++it )
         std::cout << * it << std::endl;
   
}
P-29086
ison
» 2011-03-11 23:42:42
jeśli ilość podanych wartości na wejściu przekracza 100000 to radzę wczytywać przez scanf - jest szybszy
P-29088
BlackDante
Temat założony przez niniejszego użytkownika
» 2011-03-11 23:48:14
o dziękuję pięknie :) chociaż można powiedzieć że to jest bardziej zaawansowane niż dzielenie Stringa po spacjach :)

@Ison dziękuje za słuszną uwagę, na pewno się przyda :)
P-29089
malan
» 2011-03-11 23:51:34
@ison: Aha, czyli dla 99 999 liczb
std::cin
 będzie szybszy? ;p
P-29090
ison
» 2011-03-12 09:20:28
@malan Nie, dla 99999 liczb to czy użyjesz cin czy scanf nie zrobi wielkiej różnicy, w programach sprawdzających poprawność programów nigdy nie ustawia się skrajnych limitów czasowych. To czy program będzie działał ~1 ms czy ~2 ms nie zrobi aż takiej różnicy jak ton czy będzie działał ~300 ms czy ~600 ms. Liczbę 100.000 rzuciłem tak na oko - najczęściej najlepiej starać się wczytywać jedynie przez scanf. Chyba, że liczb na wejściu jest mało lub chcemy wczytać std::string - nie ma zbytniego sensu bawić się potem w konwersję na char*
P-29092
« 1 »
  Strona 1 z 1