문제

I'm using Qt 4.5 and im working with a QList<QStringList> which is a list of string list.

Now I want to replace one string inside one stringList but with it seems unusual to type. I have found the following way of doing it and was wondering if it is ok:

QList <QStringList> pDataList;

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

Now, I'm not worried about the syntax, but I want to know if pDataList's pointers is adjascent in memory so that it is okay to use []. Is there another way to do it?

도움이 되었습니까?

해결책

The issue of pDataList's elements being adjacent in memory is not related to the question of whether it is ok to use operator[].

In general, QList<> does not guarantee that its elements are adjacent in memory, but it does overload operator[] to give you the element you're looking for nonetheless.

The only thing you need to worry about when doing something like this is to make sure that (pDataList.size() < listIndex). otherwise, you'll be indexing elements not in the list, triggering an exception in debug or undefined behavior in release.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top