Метод first
Метод first класса span возвращает новый объект span, который ссылается на первые N элементов исходного представления. Сами данные при этом не копируются - новый span просто указывает на начало исходного диапазона. В параметр метода мы передаём количество элементов, которое нужно взять с начала.
Если запрошенное количество элементов превышает размер исходного span, поведение не определено. Поэтому перед вызовом метода следует убедиться, что count не больше, чем size.
Синтаксис
span.first(count)
Пример
Давайте создадим span из массива и получим его первые 3 элемента:
#include <iostream>
#include <span>
using namespace std;
int main()
{
int arr[] = {1, 2, 3, 4, 5};
span<int> sp(arr);
auto res = sp.first(3);
for (int el : res) {
cout << el << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3
Пример
Давайте получим первые 1 элемент из span, созданного над строкой "abcde":
#include <iostream>
#include <span>
#include <string>
using namespace std;
int main()
{
string str = "abcde";
span<char> sp(str);
auto res = sp.first(1);
for (char el : res) {
cout << el;
}
cout << endl;
return 0;
}
Результат выполнения кода:
"a"