내가 STL에 조예가 깊어서 글을 남기는 것이 아니라, Effecitve STL 을 공부하는 사람들이 이 글을 보고, 도움이 되었으면 하는 생각과, 혹시 내가 틀린것이 있다면 지적해 주시지 않을까 란 생각으로 글을 올리는것임을 미리 밝힙니다.  - 최익필

STL 알고리즘 중 동작이 제일 혼동스러운 함수를 손꼽으라면 단연 remove가 뽑힌다. 왜냐하면 함수명이 ... 햇갈리기 때문이다.

remove 알고리즘을 호출하여 컨테이너 내부의 값들을 지울려고 한다해도, 컨테이너 내부의 값들은 지워지지 않는다. 왜냐하면 remove 함수는 이터레이터를 인자로 받기 때문에, 어떤 컨테이너에서 값을 지워야 하는지 알 수 없기 때문이다.

그런고로, remove 류의 모든 함수들(unique, remove_if)은 값을 지우지 않는다. 그 대신에 지워야 할것을 빼둔 마지막 이터레이터를 뱉어낸다.

이런 특성이기 때문에. erase 함수와 붙여서 사용하면, 완벽한 조화를 이루어지게 된다는 것이다.

즉 이렇게 사용 하면 된다.


하지만 컨테이너들의 멤버함수 remove 는 ... 지워주므로 꼭 기억해 두자.^^

관련링크
http://lagoons.net/tt/599
http://jeddli.tistory.com/entry/STL-컨테이너에서-특정한-값을-가진-객체-지우기




  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기