【发布时间】:2020-11-05 10:03:21
【问题描述】:
我想声明一个特定长度的向量数组。为了声明一个向量数组,我这样写,例如:
std::vector<double> myarray[17][38][42];
这将创建一个 3 维 17x38x24 数组,其中每个元素的类型为 std::vector<double>。
我也知道指定std::vector的大小我可以写,例如:
std::vector<double> myvector(14);
这将创建一个std::vector,并为 14 个元素分配空间。
当我尝试将这两个程序结合起来时遇到了问题。例如写作:
std::vector<double> myarray[17][38][42](14);
我收到此错误:
错误:数组必须用大括号括起来的初始化程序初始化 [-fpermissive]
std::vectormyarray[17][38]42;
当我尝试以这种方式初始化它时:
std::vector<double> myotherarray(14)[17][38][42];
我收到此错误:
错误:在“[”标记之前应为“,”或“;”
std::vectormyotherarray(14)[17][38][42];
将数组的每个元素声明为一定大小的std::vector 的正确方法是什么?
【问题讨论】:
-
我认为你做不到。你必须用循环初始化数组,或者
std::fill。
标签: c++ arrays vector initialization size