首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从“const QVector<QVector<qreal>>”转换为“QVector<QVector<qreal>>”

从“const QVector<QVector<qreal>>”转换为“QVector<QVector<qreal>>”
EN

Stack Overflow用户
提问于 2018-09-27 06:07:15
回答 2查看 185关注 0票数 0

如何解决以下问题,即将const QVector<QVector<qreal>>转换为QVector<QVector<qreal>>

我试了几步,但没有起作用:

代码语言:javascript
复制
QVector<QVector<qreal>> points = const_cast<QVector<QVector<qreal>>>(abc.points);

abc.points是一个类型为QVector<QVector<qreal>>的结构元素,我正试图从QDataStream中提取它

代码语言:javascript
复制
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;
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-27 06:21:13

是由QVector<QVector<qreal>> points(abc.points);做的

如果有其他方法,请提出建议。

票数 0
EN

Stack Overflow用户

发布于 2018-09-27 08:13:25

<<采用const,因为它不修改参数,而>>的全部目的是修改参数。

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

代码语言:javascript
复制
QDataStream& operator >> (QDataStream& in, CustomPointCloud& abc)
{
    quint32 pointsCount;
    in >> pointsCount;
    in >> abc.points;
    return in;
}

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

代码语言:javascript
复制
QDataStream& operator >> (QDataStream& in, CustomPointCloud& abc)
{
    return in >> abc.points;
}

QDataStream& operator << (QDataStream& out, const CustomPointCloud& abc)
{
    return out << abc.points;
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52530443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档