Question

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?

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top