如何在C++中重构向量?

如何在C++中重构向量?,c++,matrix,vector,reshape,C++,Matrix,Vector,Reshape,我想在MN元素的矩阵中重塑p*1元素的向量,其中p=MN。使用数字,我有一个143360的向量,我想以最简单的方式在224*640个元素的矩阵中重塑它。我在C++中是新的。 Thank's编写一个包装向量的类 一些建议: 向量或其引用应为成员 保存行数和列数 访问元素j,例如,通过返回向量的元素j*列+i 访问器函数可以具有相同的名称,例如getter的const T&operatorstd::size\u T j、std::size\u T i const和用于设置某些元素的函数的T&oper

我想在MN元素的矩阵中重塑p*1元素的向量,其中p=MN。使用数字,我有一个143360的向量,我想以最简单的方式在224*640个元素的矩阵中重塑它。我在C++中是新的。
Thank's

编写一个包装向量的类

一些建议:

向量或其引用应为成员 保存行数和列数 访问元素j,例如,通过返回向量的元素j*列+i 访问器函数可以具有相同的名称,例如getter的const T&operatorstd::size\u T j、std::size\u T i const和用于设置某些元素的函数的T&operatorstd::size\u T j、std::size\u T i`。两者兼有的优点是,在将矩阵作为常量传递时,可以使用getter。 正如前面所暗示的,您可能希望对类进行模板化,以便可以将其用于多种数据类型。
回答您的问题:如果矩阵的大小不固定,您可以使用std::vector来存储数据。如果已修复,则可以使用std::数组

然后你可以写一个getter,比如

double get_component(std::size_t c1, std::size_t c2){
    return matrix [ c1 * M + c2 ];
}

但是:我建议大家看看线性代数库,比如or。它们提供了您渴望的可用性,并提供了高度精细的存储和计算能力。我怀疑你能否超越这些库的性能

最简单的方法是对相同的数据使用不同的视图,这些数据简单地存储为一个线性阵列。不管怎样,你试了什么?所以它不是一个代码编写服务,所以在获得帮助之前,您需要付出一些努力。如果它被修复,您可以使用std::vector。这是真的,但我强烈怀疑你的意思是。。。可以使用std::array:-另外,return语句中缺少,实际上,应该是[]。@MartinBonner您完全正确。我编辑了我的答案。也不清楚getter应该属于哪个类?向量?当然不是,但答案是不完整的