这可能很简单,但我就是找不到解决方案。我创建了一个这样的二维 vector :
vector<vector<int> > matrix;
vector<int> row;
for (int i = 0; i < x;i++) {
row.push_back(i);
}
for (int i = 0; i < x; i++) {
matrix.push_back(row);
}
我遇到的问题是我现在想根据需要添加行和列,因为随着时间的推移我可能会用完矩阵空间,但我不知道该怎么做。这些行很简单,我可以将另一行推回到矩阵的底端...但我不知道如何添加另一列。
如果这个问题 super 愚蠢,我很抱歉,但我在编程方面还没有那么丰富的经验,而且我找不到任何关于将列添加到 2D vector 的特定问题的信息。
最佳答案
添加到您的代码中,想法是遍历矩阵中的每一行并将新元素插入每个 vector 。所有这些元素共同组成一个新列。
#include <iostream>
#include <vector>
using namespace std;
int main() {
// Initialize a 3x3 matrix
vector<vector<int>> matrix;
vector<int> row;
int x = 3;
for (int i = 0; i < x; i++) {
row.push_back(i);
}
for (int i = 0; i < x; i++) {
matrix.push_back(row);
}
// Add a column; the matrix is now 3x4
int newElement = 3;
for (auto &row : matrix) {
row.push_back(newElement);
}
// Print the matrix
for (auto &row : matrix) {
for (auto &cell : row) {
cout << cell << ' ';
}
cout << endl;
}
return 0;
}
您可能希望将这段代码分成函数。
关于c++ - 如何将列添加到多维 vector (C++)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51412007/