如何解决以下问题,即将const QVector<QVector<qreal>>转换为QVector<QVector<qreal>>
我试了几步,但没有起作用:
QVector<QVector<qreal>> points = const_cast<QVector<QVector<qreal>>>(abc.points);abc.points是一个类型为QVector<QVector<qreal>>的结构元素,我正试图从QDataStream中提取它
QDataStream& operator >> (QDataStream& in, const CustomPointCloud& abc)
{
quint32 pointsCount = quint32(abc.pointsCount);
QVector<QVector<qreal>> points =
const_cast<QVector<QVector<qreal>>>(abc.points);
in >> pointsCount >> points;
return in;
}发布于 2018-09-27 06:21:13
是由QVector<QVector<qreal>> points(abc.points);做的
如果有其他方法,请提出建议。
发布于 2018-09-27 08:13:25
<<采用const,因为它不修改参数,而>>的全部目的是修改参数。
您应该更改您的函数定义。您正在将数据从流读取到一个在函数结束时不再存在的本地对象中。
QDataStream& operator >> (QDataStream& in, CustomPointCloud& abc)
{
quint32 pointsCount;
in >> pointsCount;
in >> abc.points;
return in;
}我还建议您不需要点计数来提取流,底层的QDataStream& >> (QDataStream&, QVector&)模板处理这个问题。然后,这对运算符将是
QDataStream& operator >> (QDataStream& in, CustomPointCloud& abc)
{
return in >> abc.points;
}
QDataStream& operator << (QDataStream& out, const CustomPointCloud& abc)
{
return out << abc.points;
}https://stackoverflow.com/questions/52530443
复制相似问题