{

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

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

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

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

}

'책 정리 > C++ Coding Standards : C++ 코딩의 정석' 카테고리의 다른 글

항목 89 : 올바른 함수 개체를 만들자. ( Write function objects correctly. )  (0) 2009.04.16
항목 88 : 알고리즘과 비교 인자에는 함수보다 함수개체를 사용하라. ( Prefer function objects over functions as algorithm and comparer arguments. )  (0) 2009.04.16
항목 87 : 술어를 순수한 함수로 만들어라. ( Make predicates pure functions. )  (0) 2009.04.16
항목 86 : 적절한 STL 정렬 알고리즘을 사용하라. ( Use the right STL sort algorithm. )  (0) 2009.04.16
항목 85 : 적절한 STL 검색 알고리즘을 사용하라. ( Use the right STL search algorithm. )  (0) 2009.04.16
항목 84 : 직접 작성한 루프보다는 알고리즘을 활용하라. ( Prefer algorithm calls to handwritten loops. )  (0) 2009.04.16
항목 83 : 검증된 STL 임플리먼테이션을 사용 하라. ( Use a checked STL implementation. )  (0) 2009.04.16
항목 82 : 용량의 축소와 요소의 제거에 있어 적절한 방법을 사용하라. ( Use the accepted idioms to really shrink capacity and really erase elements. )  (0) 2009.04.16
항목 81 : 추가 작업에 있어 범위를 지정한 방식을 활용하라. (Prefer range operations to single-element operations. )  (0) 2009.04.12
항목 80 : 요소의 추가에는 push_back을 활용하라. ( Prefer push_back to other ways of expanding a sequence. )  (0) 2009.04.12
항목 79 : 컨테이너에는 값과 스마트 포인터만을 저장하라. ( Store only values and smart pointers in containers. )  (0) 2009.04.12
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기

댓글을 달아 주세요

">