gpt4 book ai didi

c++ - 从 'const QVector>' 转换为 'QVector>'

转载 作者:行者123 更新时间:2023-11-28 01:28:54 24 4
gpt4 key购买 nike

如何解决以下问题,即转换 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;
}

最佳答案

<<需要 const , 因为它不修改参数,而 >> 的整点就是修改参数。

您应该更改函数定义。您正在将流中的数据读入一个本地对象,该对象在函数结束时不再存在。

QDataStream& operator >> (QDataStream& in, CustomPointCloud& abc)
{
quint32 pointsCount;
in >> pointsCount;
in >> abc.points;
return in;
}

我还建议您不需要点数来提取流,底层 QDataStream& >> (QDataStream&, QVector<T>&) 模板处理那个。这对运算符将是

QDataStream& operator >> (QDataStream& in, CustomPointCloud& abc)
{
return in >> abc.points;
}

QDataStream& operator << (QDataStream& out, const CustomPointCloud& abc)
{
return out << abc.points;
}

关于c++ - 从 'const QVector<QVector<qreal>>' 转换为 'QVector<QVector<qreal>>',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52530443/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com