STL 질문이요 ㅠㅠ 동적할당된 컨테이너의 원소 접근은..
vector는 임의접근이 가능하잔아요.
at이나 []을 사용하면 되는데..
vector<int>* v = new vector<int>;
이렇게 동적할당된 컨테이너는
어떻게 접근하나요?
v->at(1);
이런건 되는데..
*v[1] 이건 안되더라구요... 헬프미 도와주세여
STL 질문이요 ㅠㅠ 동적할당된 컨테이너의 원소 접근은..
vector는 임의접근이 가능하잔아요.
at이나 []을 사용하면 되는데..
vector<int>* v = new vector<int>;
이렇게 동적할당된 컨테이너는
어떻게 접근하나요?
v->at(1);
이런건 되는데..
*v[1] 이건 안되더라구요... 헬프미 도와주세여
질문을 잘읽진 않았지만 STL에서 각 원소에 접근하는건 iterator(반복자) 이용하는 방법을 찾아보세요
자료형에맞는 포인터를 하나만들어서 컨테이너 앞부분을 가르키게한뒤에 원소의 위치까지 움직여 원하는 거 하시면됩니다.
ㅋㅋ 그럼 이러면 되지 v->operator[](1);
참조형을 임시로 만들어버리는 방법도 있는뎅 vector<int>& rv = *(new vector<int>);
그러면 rv[1]; 요렇게 할 수 있음... 근데 C++안한지 두달쯤 되서 문법이 정확한지는 모르겠따
근데 vector에 동적할당할 필요가 있나? 애초에 vector자체가 배열을 기반으로 메모리 재할당과 원소 복사를 반복하는건데. 동적할당이 필요한만큼 reserve를 해주면될거같은데...
저렇게 쓰는 이유가 무엇인지 ㅇㅇㅇㅇ 궁금함
vector로 ragged array 구현한거일지도..
모두들 감사합니다. 특히 씨알님 감사합니다. 생각해보니 동적할당할 이유가 없었내요. 배열의 크기를 동적으로 받는 함수라 생각 없이 vector도 동적으로 할당했습니다..