c++ - 初始化多维数组
问题描述
如何使用变量初始化数组,例如int x[row][col];
int myArray[7][4] = { {1,2,3,4}, {5,6,7,8}, {5,6,7,8}, {5,6,7,8}, {5,6,7,8}, {5,6,7,8}, {5,6,7,8} };
我想将数组初始化为 this =
int myarray({2,3,4},{12,4,5},{2,2,2})
解决方案
确切的答案是你不能像这样初始化一个数组,即,在编译时不提供两者,但row
可以为你完成这项工作。col
std::vector
您可以使用如下代码:
#include <iostream>
#include <vector>
void print_vector(std::vector<int> &v) {
std::cout << "{ ";
for (auto &&i : v) {
std::cout << i;
if (&i != &v.back()) {
std::cout << ",";
}
}
std::cout << " }";
}
void print_matrix(std::vector<std::vector<int>> &v) {
std::cout << "{ ";
for (auto &&i : v) {
print_vector(i);
if (&i != &v.back()) {
std::cout << ", ";
}
}
std::cout << " }" << std::endl;
}
int main() {
std::vector<std::vector<int>> v = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};
// same as std::vector<std::vector<int>> v({{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}});
print_matrix(v);
// prints { { 1,2,3,4 }, { 5,6,7,8 }, { 9,10,11,12 } } on stdout
}
我已经包括在内print_vector
,并且print_matrix
自从 OP 在评论中询问他们以来,尽管没有考虑太多。您可以在此线程上获得更好的实现。
推荐阅读
- flutter - 有没有办法在 Flutter 中管理全球商店?
- linux - 用于编译和运行 C++ 程序的 Bash 脚本
- javascript - 从网站打开资源管理器窗口,在已安装的驱动器上,包括链接参考中的 javascript 以生成路径
- java - 使用属性绑定Javafx获取圆心
- scala - Spark withColumn 和 where 执行顺序
- php - 无法添加 2 个关联数组
- c++ - C++中的嵌套类、继承和共享指针
- javascript - 编写处理来自另一个函数的输出的 PHP 函数时使用什么设计模式?
- influxdb - 如何显示来自 influxDb 的最近 24 小时数据的高峰时段信息
- python - 如何计算任何二维多边形的引力?