2009-10-15 3 views
4

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

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

QList <QStringList> pDataList; 

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

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

ответ

5

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

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

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

+0

отличный ответ thx. –

+0

Я думаю, вы имеете в виду 'pDataList.size()> listIndex' – JakeStrang

Смежные вопросы