我正在编写使用大型矩阵的代码,其中元素是用户定义的类。为了建立这个矩阵,我使用下面的向量向量。用矢量向量描述一个非常长的矩阵,哪个维度应该是最大的?
using namespace std;
vector< vector<userclass> > matrix = vector<vector<userclass> >(sizeX, vector<userclass>(sizeY));
这个类,也可能是一个结构,将包含一些内置函数,如浮点数和指针。所以这里是这样的: 假设矩阵在一个方向上的大小为2000,但在另一个方向上只有20的大小,但是我可以完全自由地选择哪一个。为了获得最佳性能,我应该选择哪一个最大,sizeX
或sizeY
?换句话说:哪个更快,大矢量的小矢量,还是小矢量的大矢量?有没有区别?
性能优化应该是针对单个随机访问。
您可能想看看boost的多维数组库,因为它不仅更好地使用内存,而且还为您提供标准迭代和其他细节:http://www.boost。org/doc/libs/1_48_0/libs/multi_array/doc/user.html – HostileFork