我遇到的一个随机问题。
如果我拨打myQVector[121]
,但QVector
中没有项目,那么它会在QVector
中创建121个空格,还是仅创建名为121的空格?
我想知道,因为我正在为我的CD创建一个库(需要一个项目来学习),我想让矢量成为多CD专辑。
我的意思
QVector myQVector;
myQVector[121] = "song number 1 on cd 1";
myQVector[122] = "song number 2 on cd 1";
myQVector[211] = "song number 1 on cd 2";
myQVector[322] = "song number 22 on cd 3";
答案 0 :(得分:0)
QVector myQVector;
default constructor构建空 QVector
。
myQVector[121] = ....
i
必须是向量中的有效索引位置(即0 <= i < size()
)。
所以调用myQVector[121]
不符合条件。
您可能需要查看QMap
,std::map
或std::unordered_map
。
答案 1 :(得分:0)
不,它不会自动增加QVector的大小(项目数)。相反,您的应用程序将崩溃,因为您尝试访问无效索引。
但是列表/向量似乎不是正确的数据结构。我相信,你真正想要的是一个QMap,你可以在其中为一个键赋值:
myMap[songId] = "song number 1 on cd 1";