我正在尝试创建一个 n x n vector ,稍后我可以将其cout
作为表/矩阵。 Xcode 指向 for
循环中的 =
并告诉我没有可行的重载“=”
。我不知道这意味着什么或如何解决它。
int n=5;
vector< vector<int> > row(n);
for (int i=0; i<n; i++) {
row[i] = new vector<int> column(n);
}
也尝试过这个,但 Xcode 也不喜欢它,这次指向 column
并说 预期')'
:
int n=5;
vector< vector<int> > row;
for (int i=0; i<n; i++) {
row.push_back(new vector<int> column(n));
}
我的猜测是,这与我在 for
循环内声明新 vector column
的方式有关。非常感谢任何帮助/建议。谢谢。
最佳答案
简单的解决方案是使用相关的constructor of std::vector
,将其初始化为 n
个元素,每个元素的值均为 val
- 无需循环。
std::vector<T> (n, val);
有了您的原始代码片段,我们最终会得到以下结果,它将初始化行以具有 n
std::vector,每个行都有 n
元素。
std::vector<std::vector<int> > row (n, std::vector<int> (n));
关于C++ 如何动态创建二维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29072961/