[ Programming ]2009. 4. 19. 01:24
프로그래밍을 하다보면 한번쯤은 다 써 봤을 것이다.

STL을 사용시 주의 할점이 있는데요.

begin()과 end()입니다.

begin()은 컨테이너의 첫번째 요소를 가르키고,
end()는 마지막의 유효한 요소 너머의 위치를 돌려 줍니다.

end()를 위와 같은 이유는

1. 빈 리스트에 대한 점검 코드를 생략 할수 있고,
2. 컨테이너의 요소를 차례로 탐색 하는 루프를 만들기가 쉽기 때문입니다.

물론 직관적이지 못한다는 단점도 있습니다.
마지막의 유효한 요소 너머의 위치를 돌려 주기 때문에 end() 위치를 가르키는 반복자를
역참조 해서는 안됩니다.

 STL 컨테이너들은 정보를 참조가 아니라, 
값의 의한 전달 이라서 포인터를 넘겨주는 것이 바람직합니다.
물론 적은 양의 데이터 같은 경우는 차이를 느끼지 못하겠지만, 
게임을 만들다 보면 큰 데이터를 넘기게 되면 그 차이는 말로 표현 못할 정도 입니다.

간단하게 STL의 주의 할점을 알아봤는데요...

Vector을 사용 할때 주의 할점은

push_front(), popfront()의 사용을 피하는것이 좋다는것입니다. 물론 안되는것은 아니지만, 
이처럼 데이터를 앞에 넣을 경우 그 전에 넣었던 데이터를 
전부 한칸씩 뒤로 미루어야 하기 때문에 부담이 되서 입니다.

'[ Programming ]' 카테고리의 다른 글

explicit  (0) 2009.04.30
팀 스위니 강연  (0) 2009.04.22
VAssistX.RefactorCreateImplementation  (0) 2009.04.21
Tab키 Space바 처럼 사용하기  (0) 2009.04.19
프로젝트 생성시 확장자  (0) 2009.04.19
Posted by 냉동