자체 구현 컨테이너 장점
- 완전한 제어가 가능하다.
- 최적화할 기회가 생긴다.
- 원하는 기능을 추가할 수 있다.
- 외부 의존성을 제거할 수 있다.
- 병행 데이터 구조에 대한 제어가 가능하다.
표준 템플릿 라이브러리의 장점
- STL은 풍부한 기능들을 지원한다.
- 다양한 플랫폼에서 쓸 수 있는 대체적으로 안정적인 구현들이 존재한다.
- 거의 모든 C++ 컴파일러는 STL을 ‘표준’으로서 지원한다.
표준 템플릿 라이브러리의 단점
- 범용적이기 때문에 특화된 문제를 해결할 때 성능이 떨어진다.
- STL은 대부분의 경우 자체 제작한 자료 구조보다 메모리를 더 많이 먹는다.
- STL은 동적 메모리 할당을 많이 사용하고, 따라서 고성능이 필요하고 메모리 제약이 있는 콘솔 게임에 맞게 STL의 메모리 사용을 제어하기가 무척 까다롭다.
- STL의 구현과 행동은 컴파일러마다 조금씩 다르기 때문에 여러 플랫폼을 지원하는 엔진에서 사용하기 더 힘들다.
표준 템플릿 라이브러리 사용시 고려점
- STL 클래스의 성능 및 메모리 특성을 잘 알고 있어야 한다.
- 성능에 병목이 될 만한 크고 무거운 STL 클래스들의 사용을 자제해야 한다.
- 메모리 사용량이 중요한 고려 사항이 아닌 경우에만 STL을 사용해야 한다.
- 엔진이 여러 플랫폼을 지원하는 경우 STLport(http://www.stlport.org) 를 추천한다.
- 다양한 컴파일러들과 플랫폼을 지원하면서 더 효율적이고 다양한 기능을 지원하게 STL을 구현한 것이다.