std::vector уже подходит.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpRnInr 100 of 696 menu
◀ ▶

Введение в диапазоны и представления в C++

Диапазон в C++20 - это последовательность, у которой есть начало и конец. Контейнер вроде std::vector уже подходит: итераторы begin и end задают границы для алгоритмов и циклов.

Представление - легкий взгляд на те же границы. Оно не копирует элементы, а при обходе подставляет шаги фильтра или преобразования. Заголовок #include <ranges> открывает пространство имен std::ranges и std::views.

Запишем вектор и пройдем его в цикле range-for: это обычный диапазон. Представления подключим в следующих уроках, когда понадобится менять обход, не трогая исходный контейнер:

std::vector<int> data = {3, 6, 9}; for (int x : data) { std::cout << x << "\n"; }

Такой обход читает значения по мере движения итератора. Представление ведет себя похоже, но может пропускать элементы или подменять их на лету.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить