我正在创建一个像这样的List:
QList<Type> types[LastType];
然后我调整我的列表大小:
types[SomeType].reserve(count);
然后,当我尝试添加类型时,我这样做:
types[SomeType].append(newType);
它在操作符[]上给我一个断言失败。所以,这只是我还是我不应该这样做?有什么我想念的吗?这是错误消息所说的内容:http://i.imgur.com/LnDNV.png。删除.reserve并不能解决问题。
答案 0 :(得分:0)
因此,假设QList
实际上是vector
,reserve
是错误的调用。您没有按照自己的意愿调整列表大小,而是要求它为至少 size
个元素分配空间。是的,它会分配更多空间,但不会更改列表的 size 。
在任何情况下,对此函数的调用都不会影响向量中包含的元素,也不会影响向量大小(为此目的,请参阅vector :: resize或vector :: erase,它们修改了向量大小和内容)。
听起来你想要resize
。