我们可以使用以下命令轻松地将数组转换为 vector :
int a[n];
vector<int> b = vector(a, a + n);
我想使用矩阵,如果我想转换怎么办:
int a[n][n];
至
vector<vector<int>> b = ... // from a
b.size() = n 且 b[0...n-1].size() = n ?
或者我同意解决方案转换
std::vector< std::array<int, n> > a;
a.reserve(n);
vector<vector<int>> b = ... // from a
最佳答案
我怀疑 vector 的 vector 是适合您的用例的容器的最佳选择,但如果它超出了您的控制,这样的事情应该起作用:
int a[n][n];
std::vector<std::vector<int>> v;
v.reserve(n);
for (int *arr : a) {
v.emplace_back(arr, arr + n);
}
关于c++ - 将 int[n][n] 转换为 vector <vector<int>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67231920/