[완료] stl::vector 에서 n번째 element의 지우기는 어떻게?

kleinstein의 이미지

std::vector<myclass> myvector;

위의 myvector가 어느정도 채워져있을때요..

여기서 myvector 의 n번째 element 를 지우려면 어떻게 하나요?

myvector.erase();

처럼 erase 함수를 쓰려면 n번째 element를 가리키는 iterator 가 필요한데요..

n번째 element를 가리키는 iterator는 어떻게 얻죠???

imyejin의 이미지

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

kleinstein의 이미지

죄송합니다만.. vector::iterator는 random access iterator라는게 무슨 말이신지??
제가 드린 질문에 어떤 연관이 있는지 제가 좀 둔해서 그런지 잘 모르겠습니다.

klara의 이미지

랜덤접근이 가능하므로, vector::begin()+n 과 같은 방식으로 n번째 요소에 대한 반복자를 얻을수있습니다.

neogeo의 이미지

이견입니다만 n 번째라 함은

myvector.erase( myvector.begin() + n - 1 );

로 되어야 제대로 될 것 같습니다.

( ㅠ_ㅠ 딴지는 아니에용 ~ )

Neogeo - Future is Now.

Neogeo - Future is Now.

익명 사용자의 이미지

저도 이견입니다만
n이 0부터 시작한다고 보면
myvector.erase( myvector.begin() + n );
로 해야 될 것 같습니다.
이쪽이 C/C++의 첨자 규칙과도 일치하고요.
저도 딴지 아닙니다. :-)

kleinstein의 이미지

생각보다 간단한건데.. 역시 기본이 중요하네요..