C++

[C++ STL] STL에 필요한 템플릿 예제

GrayT 2016. 12. 21. 20:52

STL에 필요한 템플릿 예제


for_each() 함수를 직접 구현해 보겠다.


int에 대한 For_each와 출력 함수

 string에 대한 For_each와 출력 함수

template을 이용해 일반화를 시켜보자.




일반화를 시키면 어떠한 타입이 들어가도 OK!

(단, 함수 내에서 요구하는 인터페이스를 가지고 있어야 한다.)

(예를 들어 함수 내에서 +연산을 한다고 하면

매개 변수로 들어간 타입은 +연산 인터페이스가 제공되어야 한다.)




템플릿의 매개변수와 함수 객체를 결합하면

반환 타입과 함수 매개변수 타입을 클라이언트가

결정하는 아주 유연한 함수 객체를 만들 수 있다.

아래 예제를 보자.





STL에서 쌍을 표현할 때 항상 사용되는

pair 클래스를 템플릿으로 구현한 예제


pair 클래스는 두 객체를 하나의 객체로 취급할 수 있게

두 객체를 묶어준다. 대표적으로 map 컨테이너의 key, value