我正在使用Qt 4.5,并且我正在使用QList<QStringList>(它是字符串列表的列表)。

现在,我想在一个stringList中替换一个字符串,但是键入起来似乎很不正常。我找到了以下方法,并且想知道是否可以:

QList <QStringList> pDataList;

pDataList[listIndex].replace(QStringIndex, newString);

现在,我不必担心语法,但是我想知道pDataList的指针是否在内存中相邻,以便可以使用[]。还有另一种方法吗?

最佳答案

pDataList的元素在内存中相邻的问题与是否可以使用operator[]的问题无关。

通常,QList<>不能保证其元素在内存中相邻,但是确实会重载operator[]来为您提供您正在寻找的元素。

做这样的事情时,您唯一需要担心的就是确保(pDataList.size() < listIndex)。否则,您将为不在列表中的元素建立索引,从而在调试中触发异常或在发行版中触发未定义的行为。

10-07 14:23