我想建立一个设备地图,使地图包含:
QString 'DeviceID' 和 QVector '命令列表'
目前我的QMap如下:
QMap<QString, QVector<QString> *> devices;
QVector<QString> *pCommands= new QVector<QString>;
// :
// Fill pCommands with lots of data here
// :
devices.insert(RadioID, pCommands);
但我想知道这是否真的更好:
QMap<QString, QVector<QString>> devices;
QVector<QString> commands;
// :
// Fill commands with lots of data here
// :
devices.insert(RadioID, commands);
我确信我在某处读到 Qt 在复制数据时做了一些非常有效的事情。我没有看到很多人在 Qt 中使用指针,而且我必须通过 QMap 最后删除所有 QVector 似乎很混乱......
我正在使用 c++11,所以也许某种移动语义可以在这里工作?
编辑 我修改了代码中的注释以显示向量不为空。我还要声明,一旦存储数据,我就不需要更改数据。