Хочу заполнить вектор со стандартного потока ввода cin
с использованием std::istream_iterator
.
Есть такой код:
#include<iostream>
#include<iterator>
#include<vector>
int main()
{
std::istream_iterator< int > in(std::cin);
std::istream_iterator< int > end;
typedef std::vector< int > int_vector;
int_vector data;
std::back_insert_iterator< int_vector > target(data);
while (in != end)
{
*target = *in;
++in;
++target;
}
std::ostream_iterator<int> out(std::cout, ", ");
std::copy(data.begin(), data.end(), out);
return 0;
}
Отсюда два вопроса:
int
, а double
например)?in == end
в конце ввода (EOF) или если любая ошибка ввода произошла. Поэтому если цикл у вас преждевременно завершится, то это значит что произошла ошибка. Её можно обнаружить, проверив достиг ли ввод конца: cin.eof()
:
#include <iostream>
#include <iterator>
#include <vector>
int main() {
std::istream_iterator<int> numbers { std::cin }, eof;
// populate vector
std::vector<int> v;
std::copy(numbers, eof, std::back_inserter(v));
// print vector
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, "\n"));
return !std::cin.eof(); // success on eof
}
Пример.
Что равнозначно:
#include <iostream>
#include <iterator>
#include <vector>
int main() {
// populate vector
std::vector<int> v;
for (int n; std::cin >> n; )
v.push_back(n);
// print vector
for (int n : v)
std::cout << n << '\n';
return !std::cin.eof(); // success on eof
}
Пример.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
В чем разница inline функций в C и C++? Желательно со ссылкой на стандарт
Мяч находится на игровом поле m на n в ячейке (i, j), его можно передвигать Найдите количество возможных путей вывода мяча за пределы игрового...
На удалённом сервере запущена программа, деятельность которой хочется мониторить через централизованную систему наблюденияВместе с ней...
Пытаюсь отправить запрос post но не получается, Get приходит а post нет