5

私はQt4.5を使用していてQList<QStringList>、文字列リストのリストであるaを使用しています。

ここで、1つのstringList内の1つの文字列を置き換えたいのですが、入力するのは珍しいようです。私はそれを行う次の方法を見つけ、それが大丈夫かどうか疑問に思いました:

QList <QStringList> pDataList;

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

さて、構文については気になりませんが、pDataListのポインタがメモリ内で隣接しているかどうかを知りたいので、を使用しても問題ありません[]。それを行う別の方法はありますか?

4

1 に答える 1

5

pDataList要素がメモリ内で隣接しているという問題は、を使用しても問題がないかどうかの問題とは関係ありませんoperator[]

一般に、QList<>その要素がメモリ内で隣接していることを保証するものではありませんがoperator[]、それでも探している要素を提供するために過負荷になります。

このようなことをするときに心配する必要があるのは、それを確認することだけです(pDataList.size() < listIndex)。そうしないと、リストにない要素にインデックスが付けられ、デバッグで例外が発生したり、リリースで未定義の動作が発生したりします。

于 2009-10-15T01:20:31.567 に答える