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?

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top