我有一个名为 Contact 的类,我想构建一个指向这些对象的指针数据结构,例如 127 行和 20 列的矩阵。我试图以这种方式使用 std::vector 类
std::vector < std::vector<Contact* > > matrix (127, std::vector < Contact* > (20));
然后,在标题中声明了以下内容
std::vector<std::vector<Contact* > > Buckets;
我将之前初始化和声明的矩阵分配给它(这一步是因为基本上我不知道如何以更清晰和简短的方式进行操作):
Buckets = matrix;
但使用 push_back 函数,如
Buckets[pot].push_back(cont_temp);
一段时间后会产生一个错误(“在抛出 'std::bad_alloc' 的实例后调用终止”),我不知道如何解决它。
还有其他更好的方法来实例化和初始化矩阵吗?您会建议其他解决方案而不是使用向量向量(boost::multiarray..?)?
谢谢(对不起这个愚蠢的问题,我是个穷学生:)
编辑:我发现了错误(只是一个超出范围的分配)。如果您对这种数据结构有一般性建议,我还在这里......