'How to average FFT(vector) values in c++?

I have vectors that shows calculated FFT values. I also try to calculate average values of FFT but face with some container errors. How can I calculate average of the vectors for seconds/blocks?

Here is my code;

int numberOfSamples = 0;
int numberOfBlocks = 10;
std::vector<double> fftSpectrum;
VectorOutputChannel fftOut;
VectorOutputChannel fftAverage;

    void DemonProcessorModule::calculateFft(const std::vector<Sample>& inputSignal)
    {
        for (const auto& sample : inputSignal)
        {
            fft.timeDomain[numberOfSamples] = window[numberOfSamples] * sample.value;
            ++numberOfSamples;
    
            if (numberOfSamples == m_fftLength)
            {
                numberOfSamples = 0;
                fft.calculate();
    
                for (size_t i = 0; i < fftSpectrum.size(); ++i)
                {
                    fftSpectrum[i] = std::abs(fft.frequencyDomain[i]);
                }
    
                fftOut.addVector(fftSpectrum);
            }
        }
    }
  void FFT::calculate()
  {
   ....
   float average = accumulate(fftSpectrum.begin(), fftSpectrum.end(), 0.0 / 
   fftSpectrum.size());
   fftAverage.addVector(average);
  }


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source