按类别列出C ++

时间:2012-07-02 23:40:23

标签: c++ qt list

我正在创建一个像这样的List: QList<Type> types[LastType]; 然后我调整我的列表大小: types[SomeType].reserve(count); 然后,当我尝试添加类型时,我这样做: types[SomeType].append(newType);

它在操作符[]上给我一个断言失败。所以,这只是我还是我不应该这样做?有什么我想念的吗?这是错误消息所说的内容:http://i.imgur.com/LnDNV.png。删除.reserve并不能解决问题。

1 个答案:

答案 0 :(得分:0)

因此,假设QList实际上是vectorreserve是错误的调用。您没有按照自己的意愿调整列表大小,而是要求它为至少 size个元素分配空间。是的,它会分配更多空间,但不会更改列表的 size

  

在任何情况下,对此函数的调用都不会影响向量中包含的元素,也不会影响向量大小(为此目的,请参阅vector :: resize或vector :: erase,它们修改了向量大小和内容)。

听起来你想要resize