7. Programming with STL

STL 프로그래밍을 알아보자.

43. Prefer algorithm calls to hand-written loops.

직접 만든 루프보단 STL 알고리즘을 써라. 더 효율적이고, 더 정확하고, 더 유지보수하기 좋다.

44. Prefer member functions to algorithms with the same name.

STL 알고리즘과 같은 이름의 함수가 STL 컨테이너의 멤버 함수로 있다면 그것을 쓰라. 더 최적화 되어 있다.

45. Distinguish among count, find, binary_search, lower_bound, upper_bound, and equal_range.

정렬된 구간에선 binary_search, 아니면 find. 연관 컨테이너의 멤버 함수일 경우 키의 중복을 허용하면 find, 중복을 허용하지 않으면 count. lower_bound와 upper_bound는 정렬된 구간에서 키 이상/초과인 첫 번째 원소를 찾는다. equal_range는 키와 같은 구간이다.

46. Consider function objects instead of functions as algorithm parameters.

STL 알고리즘의 인자로는 함수가 아닌 함수 오브젝트를 넘겨라. 인라이닝 때문에 성능이 더 낫다.

47. Avoid producing write-only code.

읽기 쉬운 코드를 써라.

48. Always #include the proper headers.

헤더간 의존성은 구현체마다 다르다. 언제나 적절한 헤더를 인클루드하라.

49. Learn to decipher STL-related compiler diagnostics.

std::vector, std::string 등 STL 컨테이너는 컴파일러에게는 길고 복잡한 이름으로 보이기 때문에 에러 메시지를 알아보기 어렵다. 원래 이름이 어떤지를 파악해 에러 메시지를 이해하도록 하자.

50. Familiarize yourself with STL-related web sites.

cppreference.com