0 Tage Serie
cpp / intermediate
Snippet

Besitzlose Puffer-Ansichten für zusammenhängenden Speicher

Ein std::span ist ein besitzloses Objekt, das auf eine zusammenhängende Folge von Objekten verweist. Er bietet eine einheitliche Schnittstelle für den Zugriff auf Daten in Arrays, Vektoren oder anderen zusammenhängenden Containern ohne Kopieren, was die Performance und API-Flexibilität erhöht.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <span>
#include <vector>
#include <iostream>
void update_buffer(std::span<int> view) {
for (int& val : view) {
val *= 2;
}
}
int main() {
int raw_arr[] = {1, 2, 3};
std::vector<int> vec = {4, 5, 6};
update_buffer(raw_arr); // Works with C-style arrays
update_buffer(vec); // Works with std::vector
}
Erklärung
1
void update_buffer(std::span<int> view)
Definiert eine Funktion, die jeden zusammenhängenden Block von Integern akzeptiert.
2
for (int& val : view)
Iteriert über die Elemente, auf die der Span zeigt.