Ваш звонок на gyro_reading/n_readings
требует определения оператора /
между типами std::vector<T>
и T
. Стандартный вектор не имеет такого оператора. Даже если бы это было так, результатом, вероятно, было бы элементарное деление, а не уменьшение суммы, а затем деление.
Следующее:
#include <iterator>
#include <numeric>
//...
double average = std::accumulate(std::begin(gyro_reading),std::end(gyro_reading), 0.0) / n_readings;
будет накапливать все элементы gyro_reading
, сокращение выполняется с использованием operator+
по умолчанию, затем делится на n_readings
. Кроме того, вы можете использовать gyro_reading.size()
вместо n_readings
, поскольку это всегда будет согласованно.