我正在尝试使用多维向量创建一个多维直方图,我不知道尺寸大小提前。有关如何在c ++中执行此操作的任何想法?
的Mustafa
答案 0 :(得分:3)
编写自己的课程。对于初学者,你可能想要 类似的东西:
class MultiDimVector
{
std::vector<int> myDims;
std::vector<double> myData;
public:
MultiDimVector( std::vector<int> dims )
: myDims( dims )
, myData( std::accumulate(
dims.begin(), dims.end(), 1.0, std::multiplies<int>() )
{
}
};
对于索引,您必须使用std::vector<int>
作为索引
索引,并自己计算。基本上是沿途的东西
以下几行:
int MultiDimVector::calculateIndex(
std::vector<int> const& indexes ) const
{
int results = 0;
assert( indexes.size() == myDims.size() );
for ( int i = 0; i != indexes.size(); ++ i ) {
assert( indexes[i] < myDims[i] );
results = myDims[i] * results + indexes[i];
}
return results;
}
答案 1 :(得分:1)
答案 2 :(得分:0)
vector<vector<int>> mutli_dim_vector_name(num_rows, (vector<int>(num_cols, default_value)));
//您可以使用此格式进一步嵌套到所需的尺寸。