РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
243 of 815 menu

Метод subspan

Метод subspan класса span создает новый объект span, который ссылается на подмножество элементов исходного диапазона. Сами данные при этом не копируются, а новый span указывает на ту же память. В первый параметр мы передаем позицию, откуда следует начинать поддиапазон, а во второй - количество элементов. Оба параметра являются необязательными.

Синтаксис

span.subspan(offset, [count])

Пример

Давайте создадим span из массива и получим его поддиапазон, начиная с позиции 1 и длиной 3 элемента:

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

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

2 3 4

Пример

Давайте получим поддиапазон от позиции 2 до конца исходного span, не указывая количество элементов:

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

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

3 4 5

Пример

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

#include <iostream> #include <span> #include <string_view> using namespace std; int main() { string_view str = "abcde"; span<const char> sp(str.data(), str.size()); span<const char> sub = sp.subspan(1, 3); for (char elem : sub) { cout << elem; } cout << endl; return 0; }

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

"bcd"

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

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