我想做的是
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);
}
}