C++ vector에 삽입에 대해서 질문 좀 하겠습니다~

greathero의 이미지

vector<int> *v = new vector<int>(); // 벡터 초기화는 무조건 이렇게 하고 싶습니다!
 
v->operator[0] = 1; // 0번지에 접근하는 순간 에러
v->at(0) = 1;       // 마찬가지로 에러

push_back을 이용하지 않고 index를 이용해 자유롭게 삽입을 하고 싶습니다.
이 때, 벡터의 용량은 명시하지 않구요.

그래서 insert에 반복자를 넣어서 써보려고 했는데
insert 함수를 쓴 코드의 대부분은 벡터의 용량을 명시하거나 초기화를 하더라구요.

index를 이용해 삽입을 할 수 있을까요? 문득 궁금해져서 물어봅니다.

klara의 이미지

불가능합니다. 비슷한 걸로는 std::map 을 이용하거나 간단하게 사이즈가 인덱스보다 작으면 자동으로 확장하는 컨테이너를 만드세요.

ifree의 이미지

qt 에서 별도로 만든 벡터에서는 인덱스를 쓰더군요.
결국은 insert를 랩한 거 아닐까 생각합니다.