Программисты больше не нужны!
Нужны ИИ инженеры! Хотите научиться? Вступайте в канал!
247 of 824 menu
◀ ▶

Класс span

Класс span представляет собой невладеющее представление непрерывной последовательности объектов. Он позволяет ссылаться на участок памяти, принадлежащий другому контейнеру (например, вектору или массиву), без владения этими данными и без их копирования. В первом параметре шаблона указывается тип элементов, во втором (необязательном) - размер последовательности (динамический или фиксированный).

Синтаксис

#include <span> std::span<Type, Extent> span_name;

Пример

Давайте создадим span из вектора целых чисел и выведем его элементы:

#include <iostream> #include <vector> #include <span> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; span<int> sp(vec); for (int elem : sp) { cout << elem << " "; } cout << endl; return 0; }

Результат выполнения кода:

1 2 3 4 5

Пример

Давайте создадим span из массива строк и получим доступ к его элементам по индексу:

#include <iostream> #include <span> using namespace std; int main() { string arr[] = {"abcde", "12345"}; span<string> sp(arr); cout << sp[0] << endl; cout << sp[1] << endl; cout << sp.size() << endl; return 0; }

Результат выполнения кода:

"abcde" 12345 2

Пример

Давайте создадим span с фиксированным размером и проверим его длину:

#include <iostream> #include <vector> #include <span> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; span<int, 5> sp(vec); cout << sp.size() << endl; cout << sp.front() << endl; cout << sp.back() << endl; return 0; }

Результат выполнения кода:

5 1 5

Смотрите также

  • метод size,
    который возвращает количество элементов в span
  • метод data,
    который возвращает указатель на начало последовательности
  • метод first,
    который возвращает подspan из первых элементов
  • метод subspan,
    который возвращает подspan из указанного диапазона
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить