【发布时间】:2020-09-22 20:58:56
【问题描述】:
我有一个带有二维整数数组的 C++ 类。
该成员由该类的一种方法设置。
class MyClass {
private:
int values[][4];
public:
MyClass();
void setValues(int values[][4]);
如果我这样做:
MyClass::setValues(int values[][4]) {
Serial.println(values[0][0]);
}
一切正常,没有错误。但如果我这样做:
MyClass::setValues(int values[][4]) {
this->values = values;
}
我收到invalid use of array with unspecified bounds 错误。
我需要这个二维空间来使用这个类的其他方法。
如何将其保存为班级成员?
【问题讨论】:
-
std::vector<int>作为计算的二维向量,或std::vector<std::vector<int>>作为向量的向量的整数。 -
这是一个大小不一的数组,所以你不能像这样把它放在
class中。它需要一个固定的大小。如果可用,请使用std::vector,如果没有,请使用new[]。 -
忘记 C 风格的数组存在。专门使用
std::array或std::vector代替它们。过上更幸福的生活。 -
std::vector<:vector>> 不起作用...我需要添加一些库吗?