4

valarray を最初の要素で除算すると、最初の要素のみが 1 になり、他の要素は元の値を保持します。

#include <iostream>
#include <valarray>
using namespace std;

int main() {
    valarray<double> arr({5,10,15,20,25});
    arr=arr/arr[0]; // or arr/=arr[0];

    for(int value:arr)cout << value << ' ';
    return 0;
}

実際の出力は次のとおりです。

1 10 15 20 25

予想される出力は次のとおりです。

1 2 3 4 5

実際の出力が期待どおりにならないのはなぜですか?

-std=c++11 で g++(4.8.1) を使用しています

4

2 に答える 2