Вопрос о QList<QStringList> в Qt
Вопрос
Я использую Qt 4.5 и работаю с QList<QStringList>
который представляет собой список списка строк.
Теперь я хочу заменить одну строку внутри одного списка строк, но это кажется необычным для ввода.Я нашел следующий способ сделать это и мне было интересно, нормально ли это:
QList <QStringList> pDataList;
pDataList[listIndex].replace(QStringIndex, newString);
Меня не беспокоит синтаксис, но я хочу знать, pDataList
указатели расположены в памяти рядом друг с другом, поэтому их можно использовать []
.Есть ли другой способ сделать это?
Решение
Вопрос pDataList
соседство элементов в памяти не связано с вопросом о том, можно ли использовать operator[]
.
В общем, QList<>
не гарантирует, что его элементы соседствуют в памяти, но перегружает operator[]
тем не менее, чтобы дать вам элемент, который вы ищете.
Единственное, о чем вам нужно беспокоиться, делая что-то подобное, — это убедиться, что (pDataList.size() < listIndex)
.в противном случае вы будете индексировать элементы, которых нет в списке, вызывая исключение в отладке или неопределенное поведение в выпуске.