c++ - 将 int[n][n] 转换为 vector <vector<int>>

标签 c++ arrays vector

我们可以使用以下命令轻松地将数组转换为 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/

相关文章:

arrays - 在汇编程序中初始化数组

javascript - 如何在两个不同的表中输出Javascript数组中的元素?

c++ - 如何按顺序删除 vector 中的重复值?

c++ - 用给定面值的最少硬币数量来定额。贪婪的问题

c++ - 无法连接QT信号

python - Numpy 从多维数组中选择由索引矩阵指定的矩阵

c++ - 如何从文本文件中读取数据并将其加载到 vector 中?

c++ - 我应该怎么做才能获得 'dynamic' 数组的大小?

c++ - 如何扩展和字符串化这样的宏?

仅反转 R 中字符串中的字母模式