std::span<T,Extent>::subspan
Von cppreference.com
| template< std::size_t Offset, std::size_t Count = std::dynamic_extent > |
(1) | (seit C++20) |
| constexpr std::span<element_type, std::dynamic_extent> subspan( size_type Offset, |
(2) | (seit C++20) |
Erhält einen Span, der eine Sicht auf die Count Elemente dieses Spans ab dem Offset Offset ist. Wenn Count std::dynamic_extent ist, ist die Anzahl der Elemente im Subspan size() - offset (d.h. er endet am Ende von *this).
1) Ist ill-formed, wenn
- Offset größer als Extent ist, oder
- Count nicht std::dynamic_extent ist und Count größer als Extent - Offset ist.
Das Verhalten ist undefiniert, wenn entweder Offset oder Count außerhalb des gültigen Bereichs liegt. Dies geschieht, wenn
- Offset größer als size() ist, oder
- Count nicht std::dynamic_extent ist und Count größer als size() - Offset ist.
Die Extent E des von (1) zurückgegebenen Spans wird wie folgt bestimmt:
- Wenn Count nicht std::dynamic_extent ist, Count;
- Andernfalls, wenn
Extentnicht std::dynamic_extent ist, Extent - Offset; - Andernfalls, std::dynamic_extent.
[bearbeiten] Rückgabewert
Der angeforderte Subspan r, so dass r.data() == this->data() + Offset. Wenn Count std::dynamic_extent ist, r.size() == this->size() - Offset; andernfalls r.size() == Count.
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#include <algorithm> #include <cstdio> #include <numeric> #include <ranges> #include <span> void display(std::span<const char> abc) { const auto columns{20U}; const auto rows{abc.size() - columns + 1}; for (auto offset{0U}; offset < rows; ++offset) { std::ranges::for_each(abc.subspan(offset, columns), std::putchar); std::putchar('\n'); } } int main() { char abc[26]; std::iota(std::begin(abc), std::end(abc), 'A'); display(abc); }
Ausgabe
ABCDEFGHIJKLMNOPQRST BCDEFGHIJKLMNOPQRSTU CDEFGHIJKLMNOPQRSTUV DEFGHIJKLMNOPQRSTUVW EFGHIJKLMNOPQRSTUVWX FGHIJKLMNOPQRSTUVWXY GHIJKLMNOPQRSTUVWXYZ
[bearbeiten] Siehe auch
erstellt eine Unteransicht (subspan), die die ersten N Elemente der Sequenz enthält(öffentliche Member-Funktion) | |
erstellt eine Unteransicht (subspan), die die letzten N Elemente der Sequenz enthält(öffentliche Member-Funktion) |