STL에 필요한 템플릿 예제
for_each() 함수를 직접 구현해 보겠다.
int에 대한 For_each와 출력 함수
string에 대한 For_each와 출력 함수
template을 이용해 일반화를 시켜보자.
일반화를 시키면 어떠한 타입이 들어가도 OK!
(단, 함수 내에서 요구하는 인터페이스를 가지고 있어야 한다.)
(예를 들어 함수 내에서 +연산을 한다고 하면
매개 변수로 들어간 타입은 +연산 인터페이스가 제공되어야 한다.)
템플릿의 매개변수와 함수 객체를 결합하면
반환 타입과 함수 매개변수 타입을 클라이언트가
결정하는 아주 유연한 함수 객체를 만들 수 있다.
아래 예제를 보자.
STL에서 쌍을 표현할 때 항상 사용되는
pair 클래스를 템플릿으로 구현한 예제
pair 클래스는 두 객체를 하나의 객체로 취급할 수 있게
두 객체를 묶어준다. 대표적으로 map 컨테이너의 key, value
'C++' 카테고리의 다른 글
[C++] UML 다이어그램 (클래스 다이어그램) (0) | 2017.01.17 |
---|---|
[C++] static_cast , dynamic_cast (0) | 2016.12.27 |
[C++ STL] 간단한 콜백 메커니즘 (0) | 2016.12.20 |
[C++ STL] 연산자 오버로딩 (0) | 2016.12.19 |
[C++] 전방 선언 (0) | 2016.12.19 |