想知道QVector的大小

时间:2014-02-14 01:35:10

标签: c++ qvector

我遇到的一个随机问题。

如果我拨打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";

2 个答案:

答案 0 :(得分:0)

来自QVector documentation

QVector myQVector;

default constructor构建 QVector

myQVector[121] = ....

operator[](int(i)有条件

  

i必须是向量中的有效索引位置(即0 <= i < size())。

所以调用myQVector[121]不符合条件。

您可能需要查看QMapstd::mapstd::unordered_map

答案 1 :(得分:0)

不,它不会自动增加QVector的大小(项目数)。相反,您的应用程序将崩溃,因为您尝试访问无效索引。

但是列表/向量似乎不是正确的数据结构。我相信,你真正想要的是一个QMap,你可以在其中为一个键赋值:

myMap[songId] = "song number 1 on cd 1";