C++ 如何动态创建二维 vector

标签 c++ xcode vector 2d-vector

我正在尝试创建一个 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/

相关文章:

ios - Swift 2,滚动后的 UiCollectionview - 更改的单元格数据

ios - 在 iOS 模拟器上通过 Xamarin.iOS 使用按需资源时出现问题

C++:除以 vector.size() 给出奇怪的结果

android - Xcode 和 Eclipse 之间的 GitHub XCRUN 错误

c++ - 将数字放入不同的堆中

c++ - 错误是 xmemory - 缺少 c++0x 支持?

c++ - 在类中访问 vector

c++ - 使用哪种动态容器类型?

c++ - 双端队列 - 为什么 "reserve"不存在?

c++ - 实现在模板参数中定义的类型