Będą 2 pytania z C++:
1) Pierwsze pytanie: Czy jest sposób na zapisanie tego iteratora w taki sposób, aby wczytywał maksymalnie 5 liczb typu int? Na chwilę obecną dane są wczytywane dopóki nie wpiszę np. litery zamiast liczby, albo mam crash programu gdy wpiszę powyżej 5 liczb:
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
using namespace std;
int main() {
vector <int> vec(5);
copy(istream_iterator<int, char>(cin), istream_iterator<int, char>(), vec.begin());
}
Kombinowałem z użyciem copy_n(), ale nie jestem pewny, czy to poprawna funkcja do tej sytuacji:
copy_n(vec.begin(), 5, istream_iterator<int, char>(cin));
Dostaję w tej funkcji błąd o treści: "_Dest": nie można przypisać do zmiennej, która jest stałą.
2) Drugie pytanie: Próbowałem rozłożyć ten iterator:
copy(istream_iterator<int, char>(cin), istream_iterator<int, char>(), vec.begin());
na:
istream_iterator<int, char> in_iter_start(cin);
istream_iterator<int, char> in_iter_stop();
copy(in_iter_start(cin), in_iter_stop(), vec.begin());
ale podkreśla mi na czerwono copy(in_iter_start i wywala m.in. taki błąd:
Jak to można zrobić poprawnie?