О std::views::take_ whileC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 О std::views::take_ while

Сообщение Anonymous »

Рассмотрим код:
std::vector a{3, 7, 8, 1, - 2, 4 };
auto view = a | std::views::take_while([](auto elem) {return elem > 0; });

Существуют ли какие-либо стандартные средства для получения итератора (или позиции), соответствующего элементу вектора a, следующему за последним элементом, входящим в представление, или это можно сделать только с помощью трюки с лямбдой:
std::vector a{ 3, 7, 8, 11, -2, 4 };
auto it{ a.begin() };
auto lambda = [&it](auto elem)
{
bool result = (elem > 0);
if (result) ++it;
return result;
};
auto view = a | std::views::take_while(lambda);


Подробнее здесь: https://stackoverflow.com/questions/785 ... take-while
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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