std::span на часть того же буфера: первый берет элементы с начала, второй - с конца.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpSnEd 243 of 696 menu
◀ ▶

Края std::span в C++

Методы first и last возвращают новый std::span на часть того же буфера: первый берет элементы с начала, второй - с конца.

Длина отрезка передается аргументом, исходный span при этом не меняется. Запишем массив из пяти чисел и выведем два первых через first:

#include <span> int run[] = {1, 2, 3, 4, 5}; std::span<int> all{run}; std::span<int> head = all.first(2); std::cout << head[0] << "\n"; std::cout << head[1] << "\n";

Конечный кусок получают через last с тем же смыслом длины. Запишем вектор и выведем последний элемент отрезка из двух концов:

#include <span> #include <vector> std::vector<int> vals{8, 9, 10, 11}; std::span<int> whole{vals}; std::span<int> tail = whole.last(2); std::cout << tail[1] << "\n";

Дан массив int из четырех чисел 2, 4, 6, 8. Постройте std::span<int>, возьмите first длины 3 и выведите третий элемент этого куска.

Создайте std::vector<char> из символов 'a', 'b', 'c', 'd'. Через last с длиной 2 выведите оба символа с новой строки.

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