Края 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 выведите
оба символа с новой строки.