STL의 성능을 올리기 위해서 vector와 같은 컨테이너나 string 같은 것을 기본 메모리 할당자가 아닌 커스텀 메모리 할당자를 사용할 수 있다.

 

vector string 등을 개별적으로 사용하면서 커스텀 메모리 할당자를 사용하는 경우 커스텀 메모리 할당자 사용에 문제가 없지만, vector<string>과 같이 같이 사용하는 경우 만약 vector에만 커스텀 메모리 할당자를 지정하고 string에는 커스텀 메모리 할당자를 지정하지 않으면 예상과 다르게 한쪽만(vector) 커스텀 메모리 할당자를 사용하게 된다.

 

이런 문제를 해결하기 위해 C++11에서는 scoped_allocator가 생겼다. scoped_allocator_adaptorvector<string>의 메모리 할당자로 지정하면 vector string은 같은 메모리 할당자를 사용한다.

 


저작자 표시
신고
by 흥배 2014.07.16 08:00