책 정리/C++ Coding Standards : C++ 코딩의 정석

항목 84 : 직접 작성한 루프보다는 알고리즘을 활용하라. ( Prefer algorithm calls to handwritten loops. )

최익필 2009. 4. 16. 23:04

{

STL에서 전체의 요소에 특정 작업을 하고 싶을 때, 루프로 for문을 많이 사용한다. 이것을 알기에 좀더 편하게 사용 할 수 있는 알고리즘인 for_each가 있다. for_each는 루프를 대신해서 사용 할수 있으며, 보다 독립적인 구조를 유지 할 수 있게 해 준다. 그래서인지 for_each 를 사용했던 사람은 for 문보다 for_each를 더 많이 사용 한다.

for_each를 사용 할 때는 함수 객체를 붙여 줄 수 있는데, 간단한 것이라면 boost 의 Lambda 를 사용하면 더 편해진다. 무슨 말이 필요 할까, 그냥 내가 만들어본 예제코드를 보자.

사용하고 나니 중요한 문제를 발견했다. 바로 구형 컴파일러에선 안된다는 것이다. .. 뭐 요즘은 VC2008 Express 도 쉽게 구할 수 있으니, 큰 문제는 없을 것이다. 배우는데 상관은 없겠으나, ... 그래도 좀 씁쓸하다.

.. 여담이지만 boost 완전 사랑해.

}