QVECTOR附加崩溃

QVector Append Crashing

本文关键字:崩溃 QVECTOR      更新时间:2023-10-16

我有一个带有QT的数据跟踪程序,该程序从GUI中获取信息,并将其附加到保存数据的课程中。我没有使用qVector2D,因为似乎没有任何.append方法,并且我搜索了QT的帮助论坛和文档。我必须使用qobject,因为我将序列化信息。数据存储在嵌套的QVector中 QVector< QVector<qint8> > log_matrix;

由于某种原因,当我将QVector<qint8>附加到嵌套的QVector< QVector<qint8>>上时,程序崩溃了,我没有有用的调试信息。我已经尝试了此方法的方法:

void insert_new_log(QVector<qint8> new_log)
{
    this->log_matrix.append(new_log);
}

并在main.cpp文件中尝试过此

QVector<qint8> my_data;
//initialize data
my_class->my_data_matrix.append(my_data);

我滥用附加方法吗?有其他方法可以使用不使用附录方法吗?

您似乎已经忘记了方法定义中的类名。无论如何,您的方法应该起作用。

void ClassName::insert_new_log(QVector<qint8> new_log)
{
    this->log_matrix.append(new_log);
}

您的第二个示例不会用任何数据初始化my_data。尽管它肯定会起作用,但传统上是不好的形式,可以在外部访问班级的公共成员。我建议使用getters/setter。为了插图,我使用了this,而不是您的my_class

如果您喜欢的话,您也可以使用附录操作员<<调用append方法。

QVector< QVector<qint8> > log_matrix;
QVector<qint8> my_data;
my_data<<1;
this->my_data_matrix<<(my_data);