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

Szablon vector- przechowywanie elementów

Ostatnio zmodyfikowano 2019-08-25 09:02
Autor Wiadomość
rafts
Temat założony przez niniejszego użytkownika
Szablon vector- przechowywanie elementów
» 2019-08-24 20:26:35
Mam takie elementy w kontenerze
vector <int> liczby{0,1,2,3,4,5,6,7,8.....}; // zakres od 0-1000;
jak je nadać bez konieczności wpisywania pojedyńczo kolejnych  ?
P-175111
pekfos
» 2019-08-24 21:52:40
W pętli? Zamiast pętli możesz też użyć standardowego algorytmu std::iota() (i chociaż mamy 2019 rok, chyba wciąż muszę zaznaczać, że to wymaga C++11), z <algorithm> <numeric>:
C/C++
std::vector < int > liczby( 1000 );
std::iota( liczby.begin(), liczby.end(), 0 );
P-175112
rafts
Temat założony przez niniejszego użytkownika
» 2019-08-25 07:51:30
Dzięki, Super sposób. A jakbym chciał żeby był ciąg co 2 {0,2,4,6,8,10,...} to już wtedy pętla ? 
P-175113
Monika90
» 2019-08-25 09:02:59
std::iota jest w <numeric>

Żeby było co dwa można użyć std::generate, np.:

C/C++
std::generate( v.begin(), v.end(),[ i_ = 0 ]() mutable { const auto i = i_; i_ += 2; return i; } );
Ale podobno to nie daje gwarancji, co do kolejności wywołań generatora,
więc jednak iota:

C/C++
struct gen
{
    int i;
    operator auto() const { return i; }
    void operator ++() { i += 2; }
};

std::iota( v.begin(), v.end(), gen { 0 } );
P-175114
« 1 »
  Strona 1 z 1