Pregunta acerca de un QList en Qt
Pregunta
Estoy usando Qt 4.5 y estoy trabajando con un QList<QStringList>
que es una lista de lista de cadenas.
Ahora quiero reemplazar una cadena dentro de una StringList pero con lo que parece inusual para escribir. He encontrado la siguiente manera de hacerlo y me preguntaba si es aceptable:
QList <QStringList> pDataList;
pDataList[listIndex].replace(QStringIndex, newString);
Ahora, no estoy preocupado por la sintaxis, pero yo quiero saber si los punteros de pDataList
es adjascent en la memoria de modo que es apropiado el uso de []
. ¿Hay otra manera de hacerlo?
Solución
La cuestión de los elementos de pDataList
adyacente en la memoria no está relacionada con la cuestión de si es aceptable utilizar operator[]
.
En general, QList<>
no garantiza que sus elementos están adyacentes en la memoria, pero sí operator[]
sobrecarga para darle el elemento que está buscando, no obstante.
La única cosa que hay que preocuparse cuando se hace algo como esto es para asegurarse de que (pDataList.size() < listIndex)
. de lo contrario, se le indexando elementos no en la lista, lo que provocó una excepción en depuración o comportamiento no definido en la liberación.