Pergunta sobre um qlist no QT
Pergunta
Estou usando o QT 4.5 e estou trabalhando com um QList<QStringList>
que é uma lista da lista de strings.
Agora eu quero substituir uma string dentro de um stringlist, mas com ela parece incomum digitar. Eu encontrei a seguinte maneira de fazê -lo e queria saber se está tudo bem:
QList <QStringList> pDataList;
pDataList[listIndex].replace(QStringIndex, newString);
Agora, não estou preocupado com a sintaxe, mas quero saber se pDataList
Os ponteiros são adjacentes na memória, para que seja bom usar []
. tem outro jeito de fazer isto?
Solução
A questão de pDataList
Os elementos adjacentes na memória não estão relacionados à questão de saber se não há problema em usar operator[]
.
No geral, QList<>
não garante que seus elementos sejam adjacentes na memória, mas sobrecarregar operator[]
Para lhe dar o elemento que você está procurando.
A única coisa que você precisa se preocupar ao fazer algo assim é garantir que (pDataList.size() < listIndex)
. Caso contrário, você estará indexando elementos que não estão na lista, desencadeando uma exceção em depuração ou comportamento indefinido na liberação.