0 Tage Serie
cpp / intermediate
Snippet

In-Place Transformation von Array-Elementen

Die Verwendung von std::transform ermöglicht die prägnante Modifikation von Array-ähnlichen Containern, indem eine Funktion oder ein Lambda auf jedes Element in einem bestimmten Bereich angewendet wird.

snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
// Apply a square function to each element using std::transform
std::transform(numbers.begin(), numbers.end(), numbers.begin(), [](int n) {
return n * n;
});
for (int n : numbers) std::cout << n << " ";
return 0;
}
Erklärung
1
std::transform(numbers.begin(), numbers.end(), numbers.begin(), ...
Liest vom Anfang bis zum Ende des Vektors und schreibt das Ergebnis zurück in dieselbe Startposition.
2
[](int n) { return n * n; }
Eine Lambda-Funktion, die die Logik für die Transformation definiert (Quadrieren der Eingabe).