2009-10-15 3 views
4

Qt 4.5를 사용 중이며 QList<QStringList> 문자열 목록의 목록으로 작업하고 있습니다.질문에 대한 질문 Qt <QStringList> Qt

이제 하나의 stringList를 하나의 stringList로 바꾸고 싶지만 입력하는 것이 이상하게 보입니다. 내가 그 일의 다음과 같은 방법을 발견하고 확인하는 경우 궁금 해서요 : 이제

QList <QStringList> pDataList; 

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

, 나는 구문에 대한 걱정 안 해요,하지만 난 pDataList의 포인터가 adjascent 그래서 메모리에 있는지 알고 싶어요 []을 사용하는 것이 좋습니다. 그것을 할 다른 방법이 있습니까?

답변

5

메모리에 인접한 pDataList의 요소 문제는 operator[]을 사용해도 괜찮습니까?

일반적으로 QList<>은 요소가 메모리에 인접 해 있다고 보장하지 않지만 찾고있는 요소를 제공하기 위해 operator[]을 오버로드합니다.

이와 같은 작업을 할 때 걱정해야 할 것은 (pDataList.size() < listIndex)입니다. 그렇지 않으면 목록에없는 요소의 색인을 생성하여 릴리스의 디버그 또는 정의되지 않은 동작에서 예외를 트리거합니다.

+0

위 답변입니다. –

+0

''pDataList.size()> listIndex'라고 생각합니다. – JakeStrang