c++ - 构造二维数组向量的好方法
问题描述
我想做的是
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);
}
}