マップに以下が含まれるようなデバイスのマップを作成したいと考えています。
QString 'DeviceID' と QVector 'Command List'
現在、私は次のように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 でポインターを使用している人は多くありません。最後にすべての QVector を削除する QMap を通過する必要があるのは面倒です...
私はc++ 11を使用しているので、何らかの移動セマンティックがここで機能する可能性がありますか?
編集 コード内のコメントを変更して、ベクトルが空でないことを示しました。また、データが保存されたら、データを変更する必要はないと述べます。