Domanda

Sto usando Qt 4.5 e im lavorare con un QList<QStringList> che è una lista di lista di stringhe.

Ora voglio sostituire una stringa all'interno di una stringList ma con esso sembra insolito a digitare. Ho trovato il seguente modo di farlo e si chiedeva se è ok:

QList <QStringList> pDataList;

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

Ora, io non sono preoccupato per la sintassi, ma voglio sapere se i puntatori del pDataList è adjascent in memoria in modo che sia bene usare []. C'è un altro modo per farlo?

È stato utile?

Soluzione

Il numero di elementi di pDataList essendo adiacente in memoria non è correlato alla domanda se è ok per utilizzare operator[].

In generale, QList<> non garantisce che i suoi elementi sono adiacenti in memoria, ma lo fa sovraccarico operator[] per darvi l'elemento che stai cercando comunque.

L'unica cosa che devi preoccuparti di quando si fa qualcosa di simile è quello di fare in modo che (pDataList.size() < listIndex). In caso contrario, sarete l'indicizzazione elementi non è nella lista, innescando un'eccezione nel debug o un comportamento indefinito in rilascio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top