我们正在尝试使用2D向量,因为我们希望2D数组能够动态增长。
我们尝试过:在类声明中:
vector<vector<double> > table;
但随后似乎未分配表。尝试访问成员时会出现段错误。
所以我们尝试了这个:
类声明:
vector<vector<double> >* table;
构造函数:
table = new vector<vector<double> >;
但是现在我们以前使用[] []进行访问的方式不起作用。
我们为此尝试了一个虚拟课:
class myClass {
public:
myClass();
~myClass();
vector<vector<double> > t;
};
myClass::myClass()
{
t = vector<vector<double> > (10, vector<double>(10));
}
但是它不能正常释放,我们得到了核心转储。同样,当我们尝试增加数组时,我们会明确构造每个新行。
Ex:
t[50] = vector<double>(5);
t[50][10] = 10;
[如果我们不这样做,则会出现段错误
访问元素之前,您需要调整表的大小。
请确保向量足够大以存储元素。如果向量t
的大小为N
,则您可以访问的最后一个元素是t[N-1]
。
如果已安装Boost,请尝试使用Boost Multi-array。
您可以通过取消引用以[] []的方式访问元素。