C++ 如何创建具有固定索引的QList

C++ 如何创建具有固定索引的QList,c++,qt,list,C++,Qt,List,我希望有一个QList,在其中删除元素时,元素仍然处于它们的位置。 所以它像一个有孔或类似的列表。< p>使用qMAP.< P>如果你想要一个带有空洞的列表,为什么不考虑指针指向你的ObjtQualValm MyListFuffs的指针?假设你所说的洞是指释放内存的对象,指针的QVector保留每个项目的位置,即使你破坏了其中一些项目,你仍然可以访问每个项目的内存。有不同的选项,具有不同的语义: QMap:孔根本不存在。访问孔会导致默认值/不存在。 QVector:孔作为空值或默认构造值存在。这

我希望有一个QList,在其中删除元素时,元素仍然处于它们的位置。
所以它像一个有孔或类似的列表。

< p>使用qMAP.

< P>如果你想要一个带有空洞的列表,为什么不考虑指针指向你的ObjtQualValm MyListFuffs的指针?假设你所说的洞是指释放内存的对象,指针的QVector保留每个项目的位置,即使你破坏了其中一些项目,你仍然可以访问每个项目的内存。

有不同的选项,具有不同的语义:

QMap:孔根本不存在。访问孔会导致默认值/不存在。 QVector:孔作为空值或默认构造值存在。这需要来自T的null语义。这适用于许多Qt类型,如QString、QDateTime,它们都有null值=>isNull的概念。 QVector:孔是空PTR。如果您使用纯指针类型,例如QObject派生的T,则此操作非常有效。
QHash:基本上与选项1的想法相同,但请注意:QHash以完全随机的散列顺序遍历项,而QMap以由QHash定义的索引顺序遍历项。QHash也是一个选项。QHash以散列顺序遍历项,这是随机的。如果他关心索引,那么很可能他想要索引顺序。QLinkedList甚至没有随机访问,或者索引。