티스토리 뷰

Reading Books/Accelerated C++

Chapter. 5

DWGoon 2009. 7. 2. 21:29


- std::vector의 erase 함수는 인덱스에 대해 동작하지 않는다. (그런 멤버 함수가 없다.)
cf.) Java의 Vector나 ArrayList에는 인덱스 접근을 허용하는 remove 함수가 있다.



컨테이너 중에는 임의 접근을 위해 인덱스를 아예 지원하지 않는 것도 있다.
라이브러리가 모든 컨테이너에 대해서 동일한 방식으로 동작하도록 하기 위해서는
erase의 한 가지 형태만을 제공하는 것이 더 유용하다고 한다.




- 반복자(iterator)가 정확히 어떤 타입인지에 대해 구체적인 내용을 모두 다 알 필요는 없다.
우리는 단지 반복자 타입을 어떻게 다룰 수 있는 지 그 사용법만 잘 익혀 적재적소에 사용할 수만 있으면 된다.
(캡슐화 해놓은 것을 일일이 뜯어보면서 너무 자세하게 알려는 것은 공부는 되지만 실용적이거나 효율적이지는 않다고 생각한다.)




- std::vector에서, 요소를 순차적으로 검사하면서 특정 조건에 따라 요소를 삭제하는 코드를 생각해 보자.
다음은 인덱스(index) 및 반복자(iterator)로 다루는 방법을 각각 나타낸 것이다.




'Reading Books > Accelerated C++' 카테고리의 다른 글

Chapter. 10  (0) 2009.07.29
Chapter. 9  (0) 2009.07.28
Chapter. 6  (0) 2009.07.09
Chapter. 4  (0) 2009.06.29
Chapter. 2, 3  (0) 2009.06.26
댓글