c++ - 如何声明和初始化特定大小向量的二维数组?
问题描述
对于单个向量,我们只需执行以下操作:
vector<T> v(size);
但是,在制作二维数组时,语法的这种逻辑扩展不起作用:
vector<T> v(size)[N][N];
如何做到这一点,为什么 C++ 不能这样工作?
解决方案
Vector 动态分配内存,因此您无需提前指定 vector 的大小。您可以简单地将向量声明为
vector<vector<int>>v;
如果您想使用一些预定义的值(例如 0 或其他值)对其进行初始化,那么
vector<vector<int> >vect(row);
for (int i = 0; i < row; i++) {
vect[i] = vector<int>(col);
for (int j = 0; j < col; j++)
vect[i][j] = j + 1;
}
或者,如果您知道所有元素并且尺寸很小,就可以这样做
vector<vector<int> >vect{ { 11, 12 }, { 434 }, { 9, 10 } };
推荐阅读
- python - 为新的 Django 项目创建另一个 virtualenv
- nativescript - NativeScript Playground 二维码指向默认应用
- kubernetes - 无法在 Kubernetes 中删除 pod
- node.js - 在 Node.js 中循环一个永久的 UDP 数据包 ping(3 秒间隔)
- jenkins - 詹金斯:无法加载魔力“测试”
- python - How to pass functions with arguments as parameter to another function in python with function name as a string?
- python - 如何在 python 中使用 ElementTree 将 xml 元素作为具有命名空间的字符串?
- jquery - jQuery - 仅当锚点 href 仅包含 URL 时才返回 true
- java - Android - 获取主机不会持续返回
- c# - 从 Azure 表存储中检索行