인프런 커뮤니티 질문&답변
다른함수에 vector 전달
작성
·
581
0
안녕하세요.
vector를 다른함수에 iterator를 사용해 매개변수로 전달하려고 하려고 합니다.
여기서 vector의 size는 it에 없고(v.size()처럼 it.size()를 사용햅 보려 했는데 안되더라고요) 또 다른 매개변수로 전달을 해주어야 하나요?
퀴즈
C++ STL Vector가 일반 배열보다 가지는 가장 큰 장점은 무엇일까요?
메모리 접근 속도가 훨씬 빠릅니다.
크기가 자동으로 늘어나고 줄어듭니다.
중간 요소 삽입/삭제가 매우 효율적입니다.
데이터를 정렬된 상태로 유지합니다.
답변 1
1
Rookiss
지식공유자
iterator는 일종의 포인터처럼 특정 데이터를 '가리키는' 용도이지,
전체 벡터를 관리하는 애가 아닙니다.
따라서 size는 별도의 인자로 받아주시면 됩니다.
다만 살짝 디테일인데, iterator와 size를 넘겨받을 경우
ShowNumber라는 함수가 사용하기 매우 위험한 애가 되겠죠.
(nSize를 잘못 입력하면, 바로 크래시 나는 상황)
따라서 vector<int>& 자체를 넘겨주거나,
v.begin(), v.end()와 같이 iterator 짝을 넘겨주는게 더 좋아 보이긴 합니다.




