Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一个变量声明为
vector<vector<float>> a(10, vector<float>(20));
我想做的是保存数据,但保存在一个转置的线性数组中
float *linear = new float[200];
所以最后,线性数组中没有 10 行 20 个元素(我已经实现了),而是 20 行 10 个元素。
有没有更好的方法来做到这一点,而不是从向量复制到线性数组然后转置线性数组?
也许我误解了你的问题,但是你有什么理由不能直接把它写到线性内存中,在你写的时候转置?您只是在交换行和列索引,不是吗?
float *p = linear; for (int row = 0; row < 20; row++) { for (int col = 0; col < 10; col++) { *(p++) = a[col][row]; } }