Вопрос

Я использую Qt 4.5 и работаю с QList<QStringList> который представляет собой список списка строк.

Теперь я хочу заменить одну строку внутри одного списка строк, но это кажется необычным для ввода.Я нашел следующий способ сделать это и мне было интересно, нормально ли это:

QList <QStringList> pDataList;

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

Меня не беспокоит синтаксис, но я хочу знать, pDataListуказатели расположены в памяти рядом друг с другом, поэтому их можно использовать [].Есть ли другой способ сделать это?

Это было полезно?

Решение

Вопрос pDataListсоседство элементов в памяти не связано с вопросом о том, можно ли использовать operator[].

В общем, QList<> не гарантирует, что его элементы соседствуют в памяти, но перегружает operator[] тем не менее, чтобы дать вам элемент, который вы ищете.

Единственное, о чем вам нужно беспокоиться, делая что-то подобное, — это убедиться, что (pDataList.size() < listIndex).в противном случае вы будете индексировать элементы, которых нет в списке, вызывая исключение в отладке или неопределенное поведение в выпуске.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top