Szablon vector- przechowywanie elementów
Ostatnio zmodyfikowano 2019-08-25 09:02
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 ?
|
|
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>: std::vector < int > liczby( 1000 ); std::iota( liczby.begin(), liczby.end(), 0 ); |
|
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 ? |
|
Monika90 |
» 2019-08-25 09:02:59 std::iota jest w <numeric> Żeby było co dwa można użyć std::generate, np.: 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: struct gen { int i; operator auto() const { return i; } void operator ++() { i += 2; } };
std::iota( v.begin(), v.end(), gen { 0 } );
|
|
« 1 » |