2014-02-14 2 views
-1

그냥 무작위로 질문했습니다.QVector 크기에 대해 궁금합니다

myQVector[121]을 호출했지만 QVector에 항목이없는 경우 QVector에 121 개의 공간을 만들거나 121이라는 공간 만 생성합니까?

나는 내 CD (학습 할 프로젝트가 필요함)를 만들기 때문에 멀티 - CD 앨범에서 벡터를 만들 수 있기 때문에 알고 싶다.

내가 QVector documentation에서

QVector myQVector; 

myQVector[121] = "song number 1 on cd 1"; 
myQVector[122] = "song number 2 on cd 1"; 
myQVector[211] = "song number 1 on cd 2"; 
myQVector[322] = "song number 22 on cd 3"; 
+0

설명서가 다운 되었습니까? http://qt-project.org/doc/qt-5.0/qtcore/qvector.html – juanchopanza

+0

내가 전에 본 적이없는 것 같니? 나는 anwser를 찾지 못했습니다. 그래서 어쨌든 ... 고맙습니다. 다른 사람이 대답을 얻었습니까? – Chax

+0

대답은 방금 위에 링크 된 문서에 있습니다. – juanchopanza

답변

0

무엇을 의미 :

QVector myQVector; 

default constructorQVector 구축합니다.

myQVector[121] = .... 

operator[](int(i)은 벡터 (즉, 0 <= i < size())에서 유효한 인덱스 위치 여야 조건

i있다.

따라서 myQVector[121]을 호출하면 조건을 만족하지 못합니다.

QMap, std::map 또는 std::unordered_map을보고 싶을 수 있습니다.

+0

답해 주셔서 감사합니다. 그래서 나는 다른 QVector가있는 QVector를 할 것이라고 생각합니다. 그래도 정말 고마워. n0obish 질문으로 귀찮게해서 죄송합니다. BTW 나는 당신의 anwser를 투표했을 것입니다,하지만 누군가가 내 질문에 찬성표를 던졌습니다. – Chax

+0

@Chax 기쁜 마음으로 도움이되었습니다. 내 답변 끝에 추가 한지도 유형을 살펴보십시오. 그들은 당신의 필요에 더 적합 할 수도 있습니다. – juanchopanza

0

아니요, 자동으로 QVector의 크기 (항목 수)를 늘리지는 않습니다. 대신 잘못된 인덱스에 액세스하려고하므로 응용 프로그램이 충돌합니다.

하지만 목록/벡터가 여기에 올바른 데이터 구조로 보이지 않습니다. 열쇠에 값을 할당 할 수있는 QMap이 정말로 필요하다고 생각합니다 :

myMap[songId] = "song number 1 on cd 1"; 
+0

나는 그것을 바로 볼 것이다 감사합니다. – Chax

관련 문제