Modernes C++ programmieren

Okt 23, 2024

lst-0810-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/KPP16bdK9 
#include <iostream>
#include <valarray>
using std::ostream; using std::valarray;
ostream& operator<<(ostream&os, const valarray<double>&vs) {
    os << "[";
    for(auto&v : vs) os << v << " ";
    return os << "]";
}
int main() {
    valarray a{ 1.0, 2.0, 3.0, 4.0 }; // valarray<double>
    valarray b{ 2.0, 4.0, 6.0, 8.0 };
    valarray c{ 2.5, 1.75, 0.5, 0.125 };
    valarray<double> x = ( a + b ) * c;
    std::cout << "x: " << x << "\n";  // Ausgabe: [7.5 10.5 4.5 1.5 ]
    auto y = ( a + b ) / 2;           // y ist nicht unbedingt ein valarray!
    std::cout << "y: " << y << "\n";  // Ausgabe: [1.5 3 4.5 6 ]
}