Question

J'utilise Qt 4.5 et im travailler avec un QList<QStringList> qui est une liste de liste de chaînes.

Maintenant, je veux remplacer une chaîne à l'intérieur d'un stringList mais il semble rare de taper. J'ai trouvé la façon suivante de le faire et je me demandais s'il est ok:

QList <QStringList> pDataList;

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

Maintenant, je ne suis pas inquiet au sujet de la syntaxe, mais je veux savoir si les pointeurs de pDataList est adjascent en mémoire pour qu'il soit acceptable d'utiliser []. Y at-il une autre façon de le faire?

Était-ce utile?

La solution

La question des éléments de pDataList étant adjacents en mémoire n'est pas liée à la question de savoir s'il est autorisé à utiliser operator[].

En général, QList<> ne garantit pas que ses éléments sont adjacents en mémoire, mais il operator[] de surcharge pour vous donner l'élément que vous cherchez quand même.

La seule chose que vous devez vous inquiéter lorsque vous faites quelque chose comme cela est de faire en sorte que (pDataList.size() < listIndex). sinon, vous serez éléments indexez pas dans la liste, ce qui déclenche une exception dans le débogage ou un comportement non défini dans la version.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top