C++ c++;

C++ c++;,c++,data-structures,boost,matrix,C++,Data Structures,Boost,Matrix,我正在做一个模拟,我必须计算许多平均值,我认为使用boost::累加器将是一个好主意。问题是我想平均的一个量是对称矩阵,它的对角线是事先知道的。所以我只需要计算Q[I][j]的平均值,如果I

我正在做一个模拟,我必须计算许多平均值,我认为使用boost::累加器将是一个好主意。问题是我想平均的一个量是对称矩阵,它的对角线是事先知道的。所以我只需要计算Q[I][j]的平均值,如果I 起初我觉得我需要一个

using namespace boost::accumulators;
using namespace boost::numeric::ublas;
typedef accumulator_set<double, stats<tag::mean> > accumulator;

symmetric_matrix<accumulator, lower> foo;  // a symmetric matrix of accumulators
使用名称空间boost::累加器;
使用名称空间boost::numeric::ublas;
typedef蓄能器\一套蓄能器;
对称矩阵foo;//累加器的对称矩阵
拿着我的蓄能器。但我突然想到,这种对称的_矩阵结构可能只适合保存数值(它们定义了算术运算),或者以某种方式针对此类数据进行了优化。是这样吗


如果boost中的对称_矩阵不足够,我需要一个数据结构,它可以保存对称矩阵的下三角,而不需要对角线,并且它必须适合保存累加器,并且有一个很好的类似矩阵的语法。这是一些图书馆提供的吗?如果没有,这种结构是否有一个简单的实现方法?

试试。下面是一个例子。

在boost矩阵中没有要求元素类型是数值的。当然除了矩阵算术运算符,但是如果不使用它们,它们就不会被实例化。