РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
238 of 815 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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить