#include<vector>
class Dp
{
private:
const static int N_ROW_MAX=1000;
public:
static std::vector<int> weight[N_ROW_MAX+1];
private:
static void Set(); //初始化静态成员数据
};
int main()
{
return 0;
}
void Dp::Set()
{
weight[1].resize(1);
}
这个代码最后一行报错,如图:
但是只要把最后一行的resize去掉,就不会报错了,即:
#include<vector>
class Dp
{
private:
const static int N_ROW_MAX=1000;
public:
static std::vector<int> weight[N_ROW_MAX+1];
private:
static void Set(); //初始化静态成员数据
};
int main()
{
return 0;
}
void Dp::Set()
{
weight[1];
}
这样就不会报错。
这是为什么?
静态数组的长度是预先定义好的,在整个程序中,一旦给定大小后就无法改变。
你这个weight[1];是什么?