Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将这些信息存储在qt中?列车员?

如何将这些信息存储在qt中?列车员?
EN

Stack Overflow用户
提问于 2016-06-07 14:40:25
回答 1查看 573关注 0票数 1

新蜜蜂来了。我很抱歉,如果有类似的问题,但我只是不知道如何正确地问它。问题是,我必须为大学做一些项目,现在我被困住了。我是通过udp获得信息,需要存储输出信息,以传递给对象(汽车坐标),我必须为20个对象这样做,因此它要复杂得多。我有这段代码,它应该是我的教授。告诉我了,但我得自己想办法把它储存起来。试过QList和QMap,但我想不出怎么可能

anArraynum.posX=somenumber;

所以我必须存储每辆车的坐标,当car1.x,car1.y,car1z,然后循环计数增加;car2.x等等。

我不知道我的问题或我想问的问题是否足够清楚,但请耐心等待

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while(mSocket->hasPendingDatagrams()){
        QByteArray datagram;
        QHostAddress crrAddress;
        quint16 crrPort;
        datagram.resize( int(mSocket->pendingDatagramSize()) );
        mSocket->readDatagram(datagram.data(), datagram.size(), &crrAddress, &crrPort);             
        double* resultList = new double[(datagram.size() / int(sizeof(double))) ];

        memcpy(&resultList[0], datagram.data(), size_t(datagram.size()));

        for(quint16 count = 0; (count) < mVehicleCount; count++) {
            mVehicleMap[mArrayOffset + count].ID = int16_t(resultList[7 + 11 * count]);
            mVehicleMap[mArrayOffset + count].pose.position.x = resultList[(1 + 11 * count)];
            mVehicleMap[mArrayOffset + count].pose.position.y = resultList[(2 + 11 * count)];
            mVehicleMap[mArrayOffset + count].pose.position.z = resultList[(3 + 11 * count)];
            mVehicleMap[mArrayOffset + count].pose.orientation.x = resultList[(6 + 11 * count)];
        }
        delete[] resultList;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-07 21:36:44

您可以使用QListQVector类来实现目标(Qt文档:QListQVector)。

QVector的简单示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    struct Vehicle
    {
        qint16 ID_;
        double position_x_;
        double position_y_;
        double position_z_;
        double orintation_x_;
    };

    ...

    QVector<Vehicle> vehicles(maxVehicleCount);  // maxVehicalCount - you variable

    ...

    while(mSocket->hasPendingDatagrams()){
            QByteArray datagram;
            QHostAddress crrAddress;
            quint16 crrPort;
            datagram.resize( int(mSocket->pendingDatagramSize()) );
            mSocket->readDatagram(datagram.data(), datagram.size(), &crrAddress, &crrPort);             
            double* resultList = new double[(datagram.size() / int(sizeof(double))) ];

            memcpy(&resultList[0], datagram.data(), size_t(datagram.size()));

            for(quint16 count = 0; (count) < mVehicleCount; count++) {
                vehicles[mArrayOffset + count].ID_ = qint16(resultList[7 + 11 * count]);
                vehicles[mArrayOffset + count].position_x_ = resultList[(1 + 11 * count)];
                vehicles[mArrayOffset + count].position_y_ = resultList[(2 + 11 * count)];
                vehicles[mArrayOffset + count].position_z_ = resultList[(3 + 11 * count)];
                vehicles[mArrayOffset + count].orintation_x_ = resultList[(6 + 11 * count)];
            }
            delete[] resultList;
    }

您还可以使用QMap类(Qt加法:QMap):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    struct Vehicle
    {
        qint16 ID_;
        double position_x_;
        double position_y_;
        double position_z_;
        double orintation_x_;
    };

    ...

    QMap<qint16, Vehicle*> vehicleMap;

    ...

    while(true/*mSocket->hasPendingDatagrams()*/){
            QByteArray datagram;
            QHostAddress crrAddress;
            quint16 crrPort;
            datagram.resize( int(mSocket->pendingDatagramSize()) );
            mSocket->readDatagram(datagram.data(), datagram.size(), &crrAddress, &crrPort);             
            double* resultList = new double[(datagram.size() / int(sizeof(double))) ];

            memcpy(&resultList[0], datagram.data(), size_t(datagram.size()));

            for(quint16 count = 0; (count) < mVehicleCount; count++) {
                Vehicle* vehicle = new Vehicle();
                vehicle.ID_ = qint16(resultList[7 + 11 * count]);
                vehicle.position_x_ = resultList[(1 + 11 * count)];
                vehicle.position_y_ = resultList[(2 + 11 * count)];
                vehicle.position_z_ = resultList[(3 + 11 * count)];
                vehicle.orintation_x_ = resultList[(6 + 11 * count)];
                vehicleMap.insert(vehicle.ID_, vehicle);
            }
            delete[] resultList;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37690567

复制
相关文章
【iOS开发】如何将 Array 存储在本地
做开发的时候,我们经常需要将数据保存在plist文件中,用这种方式来将数据写入磁盘,这样退出 App 再打开的话,上次写入的文件还在。
KyXu
2019/04/11
1.4K0
【iOS开发】如何将 Array 存储在本地
【QT】QT打印调试信息
//QDebug打印调试信息 int num = 20; qDebug("十进制%d",num); qDebug("八进制%o",num); qDebug("十六进制%x",num); qreal PI = 3.14; qDebug("浮点%f",PI); qDebug("科学计数法%e",PI); qDebug("123%%");//123% //另一种输入方式 qDebug()<<PI; QString str =
半生瓜的blog
2023/05/13
1K0
在QT中处理windows消息
http://blog.csdn.net/sryan/article/details/6744070
bear_fish
2018/09/20
2.6K0
在QT中处理windows消息
在Cookie中存储对象
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/details/46955119
DannyHoo
2018/09/13
3.8K0
在.NET中调用存储过程
因为做项目要用到数据库,因此存储过程是必不可少的,看了一点如何在.NET中调用存储过程的资料,颇有点心得,觉得这个东西是当用到数据库的时候必须要会的一项技术。下面是它的定义:
SAP梦心
2022/05/07
2.2K0
浅谈ZooKeeper中Kafka相关信息的存储
在kafka.utils.ZkUtils对象的开头,预先定义了很多ZK路径,列举如下。
王知无-import_bigdata
2020/05/29
1.2K0
获取Qt的安装信息
  另外我们还可以在程序中使用QLibraryInfo类的location函数获取到Qt的安装信息。
Qt君
2020/05/08
6620
在Linux中查看系统信息
按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
逍遥子大表哥
2021/12/17
2.6K0
信息存储在云平台上通常采用什么方法?
就在五年前,大多数企业将其最重要的信息资产保留在数据中心,IT经理认为内部部署的数据中心可以更好地管理、保护和控制数据和应用程序。然而,随着云计算在IT投资中扮演越来越重要的战略角色,这种情况正在发生变化。
静一
2018/12/26
1.4K0
spring之如何将验证错误信息显示在相应界面
在后台获取到验证错误之后可以这么在前端中进行显示:(利用springmvc验证的,而不是自己定义的)
西西嘛呦
2020/08/26
6420
spring之如何将验证错误信息显示在相应界面
vue中如何将 json 格式化展示在页面中?
在 vue 中,如果想在页面中展示格式化后的 json 数据,首先需要先将 json 字符串转化为 json 对象,而后通过 pre 标签 插值即可展示。代码示例如下:
蓓蕾心晴
2023/02/17
6.2K0
vue中如何将 json 格式化展示在页面中?
在 git 中如何配置用户信息
最近买了台新的笔记本,重新装了一些软件,这次就说说怎么在 git 中配置用户信息吧。
前端西瓜哥
2022/12/21
1K0
在idea中如何将jar包导入项目中
小尘要自信
2023/10/10
1.1K0
在idea中如何将jar包导入项目中
Qt各类位置信息函数
本节主要演示获取窗口位置以及显示区域坐标以及大小的函数,分析其中的区别,主要是 x(),y(),frameGeometry(),pos(),geometry(),width(),height(),rect(),size()函数,这些函数是由QWidget 提供。
mythsman
2022/11/14
7080
Qt各类位置信息函数
nodejs 在macOS中获取显卡信息
var process = require('child_process'); exports.getGraphics = function () {     return new Promise((resolve, reject) => {         process.exec('system_profiler SPDisplaysDataType -json', ((error, stdout, stderr) => {             if (error) {              
小贝壳
2020/03/05
2.7K0
在 Ubuntu 中如何将用户添加到 Sudoers
sudo是一个命令行程序,它允许被信任的用户以 root 或者其他用户身份去运行命令。
雪梦科技
2020/05/09
34.4K0
在 Ubuntu 中如何将用户添加到 Sudoers
Qt在mac安装
天天Lotay
2023/10/15
3530
Qt在mac安装
QT5获取文件信息
一、界面布局 image.png 二、引入头文件 image.png 三、声明槽函数  image.png 四、实现槽函数 image.png 五、添加信号与槽的连接 image.png 版权声明: 此文为本站源创文章[或由本站编辑从网络整理改编], 转载请备注出处: [ 狂码一生 ] http://www.sindsun.com/article-details-68.html [若此文确切存在侵权,请联系本站管理员进行删除!]
Sindsun
2018/07/06
1K0
在 Debian 中如何将用户添加到 Sudoers
sudo是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。
雪梦科技
2020/05/11
12.6K0
在 Debian 中如何将用户添加到 Sudoers
显示HDFS存储信息
显示文件由那些块构成 -files:显示文件的文件名称、大小、块数量及是否可用; -blocks: 显示每个块在文件中的信息,一个块用一行显示; -racks: 展示了每个块所处的机架位置及DataNode的位置;
sparkle123
2020/12/31
1.2K0

相似问题

如何将qt容器存储在qt容器中

16

如何存储这些敏感信息?

40

如何将这些数字存储在C中?

33

如何将这些数据存储在Perl中?

20

如何将这些数据存储在cookie中?

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文