一个构造二维数组向量的好方法



我想做的是

double A[2][2] = { 
{4, 7},
{2, 6}
};
std::vector<double[2][2]> B; 
for (int i = 1; i <= 5; i++)
{
B.push_back(A);
}

但是c++不能在std::vector中存储数组,那么正确的(速度)方式是什么呢?由于缓存一致性,A[2][2]std::array快吗?

std::array可能是这里最好的方法。它的执行应该与C风格的数组几乎相同:

#include <array>
#include <vector>
int main() {
using Array2d = std::array<std::array<double, 2>, 2>;
Array2d A = {{{4, 7}, {2, 6}}};
std::vector<Array2d> B; 
for (int i = 1; i <= 5; i++) {
B.push_back(A);
}
}

最新更新