我们尝试使用 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;
如果我们不这样做,就会出现段错误
在访问元素之前,您需要调整表的大小。
vector<vector<double> > table;
table.resize(10);
for (int i = 0; i < 10; ++i)
table[i].resize(20);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)