나는 C++ 11 std :: allocator 요구 사항을 실행하고 작동하는 실행을 위해 작성한 풀 할당자를 가지고 있지만 사용 된 정책은 (다음 용지 기준)를 기준으로 :특정 STL 컨테이너에 고정 크기 청크 풀 할당 자 적용하기
https://pdfs.semanticscholar.org/4321/a91d635d023ab25a743c698be219edcdb1a3.pdf
은 정말 우수한 동시에 그것을위한 충분한 크기의 메모리 블록으로 하나의 단일 객체를 할당한다.
std :: allocator 템플릿 메서드 "allocate"에는 STL 컨테이너가 동시에 할당 할 블록 수를 요청할 수있는 매개 변수가 있습니다. 예를 들어, std :: basic_string처럼 보입니다. 일단 스택에 남아있는 특정 크기의 문자열을 초과하면 할당 자의 연속적인 메모리 블록을 요청하여 char 배열을 저장할만큼 힙으로 전체를 한 번에 이동합니다 전체 문자열을 들고. std :: vector의 동적 확장이 비슷한 방식으로 작동하는 것 같습니다.
이 유형의 STL 컨테이너에 템플릿 화 된 유형의 크기를 고정 크기 청크를 반환하도록 설계된 할당기에 적용 할 수있는 방법이 있습니까?
표준 할당 기가 템플리트가 지정된 유형의 항목 수에 대해 연속 저장 영역을 할당 할 수 있어야합니다. –
(옵션) 멤버 인'size_type max_size()'를 제공 할 수 있으며, 위반했을 때 throw합니다. – Caleth