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 arraysupdate_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.