0 Tage Serie
cpp / intermediate
Snippet

Ansichten auf zusammenhängenden Speicher mit Spans

std::span (C++20) ist eine besitzlose Ansicht auf eine zusammenhängende Sequenz von Objekten. Es ermöglicht Funktionen, Arrays, Vektoren oder Raw-Pointer gleichermaßen zu akzeptieren, ohne Daten zu kopieren oder Größeninformationen zu verlieren, was Performance und Flexibilität erheblich verbessert.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <span>
#include <vector>
void print_data(std::span<int> view) {
for (int x : view) {
std::cout << x << " ";
}
std::cout << std::endl;
}
int main() {
int raw_arr[] = {1, 2, 3};
std::vector<int> vec = {4, 5, 6};
print_data(raw_arr); // Works with raw arrays
print_data(vec); // Works with vectors
return 0;
}
Erklärung
1
void print_data(std::span<int> view)
Akzeptiert eine 'View', die auf jede zusammenhängende Speicherquelle zeigen kann.