Об istream и алгоритмахC++

Программы на C++. Форум разработчиков
Anonymous
Об istream и алгоритмах

Сообщение Anonymous »

Предположим, я хочу прочитать элементы массива из входного потока.
Правильно ли я понимаю, что если, например, размер массива равен трем, и я хочу ввести ровно три элемента (что логично), то мне придется использовать цикл for:

Код: Выделить всё

std::array data;
for (int i = 0; i < 3; ++i)
{
std::cin >> data[i];
}
Если я использую алгоритмы:

Код: Выделить всё

std::array data;
std::ranges::copy(std::views::istream(std::cin) |
std::views::take(3),
data.begin());
то для массива из трех элементов мне придется ввести во входной поток четыре элемента (что выглядит не очень элегантно)

Подробнее здесь: https://stackoverflow.com/questions/786 ... algorithms

Вернуться в «C++»