Длина и индекс std::span в C++
Число элементов в активном куске возвращает метод size, а доступ по позиции дает operator[] с обычной нумерацией с нуля.
Оба средства не копируют данные: они работают с
тем буфером, который span уже связывает. Запишем
массив и выведем длину и крайние значения:
#include <span>
int data[] = {1, 2, 3, 4};
std::span<int> block{data};
std::cout << block.size() << "\n";
std::cout << block[0] << "\n";
std::cout << block[block.size() - 1] << "\n";
Тот же прием годится для вектора. Запишем
std::vector<int> из пяти чисел и
выведем элемент с индексом 2:
#include <span>
#include <vector>
std::vector<int> seq{5, 6, 7, 8, 9};
std::span<int> win{seq};
std::cout << win[2] << "\n";
Дан массив:
int marks[] = {3, 5, 7};
Постройте std::span<int> и выведите
size и значение с индексом 1.
Создайте std::vector<char> из символов
'x', 'y', std::span<char>
над ним и выведите последний символ через
индекс и size.