Мне было интересно, есть ли способ сохранить многомерные массивы в векторе и найти среднее значение для массивов. Каждый массив содержит одинаковые размеры сложного числа с плавающей точкой.
#include <iostream>
#include <vector>
template <typename T>
class MyGarden : public LittleGarden<T>
{
public:
typedef LittleGarden<T> BaseClass;
typedef typename BaseClass::value_type value_type;
using BaseClass::Flowers_info;
using BaseClass::Average;
};
std::vector<array<T>> Collection;
Collection.push_back(Flowers_info);
Average = std::accumulate(Collection.begin(),Collection.end(), 0)/Collection.size();
Но я получил ошибку:
error: no match for ‘operator=’ (operand types are ‘array<std::complex<float> >’ and ‘std::vector<array<std::complex<float> >, std::allocator<array<std::complex<float> > > >::size_type {aka long unsigned int}’)
Average = std::accumulate(Collection.begin(),Collection.end(), 0)/Collection.size();
^
error: no match for ‘operator+’ (operand types are ‘int’ and ‘array<std::complex<float> >’)
__init = __init + *__first;
^
note:mismatched types ‘complext<T>’ and ‘int’
Он находится в файле .h и работает, когда Flowers_info напрямую используется, не входя в вектор, но я хочу собрать около 10 Flowers_info и получить среднее значение перед его использованием. Теперь вектор имеет те же размеры, что и Flowers_info, однако усреднить многомерные массивы этих комплексных чисел довольно сложно. Я не мог решить это сам, у кого-нибудь может быть предложение?
Спасибо.
Задача ещё не решена.