cache_chunklist 클래스
단일 크기의 메모리 블록을 할당하고 할당 취소하는 블록 할당자를 정의합니다.
구문
template <std::size_t Sz, std::size_t Nelts = 20>
class cache_chunklist
매개 변수
Sz
할당할 배열의 요소 수입니다.
설명
이 클래스 템플릿은 새 연산자를 사용하여 원시 메모리 청크를 할당하고, 필요한 경우 블록을 하위 할당하여 메모리 블록에 대한 스토리지를 할당하고, 할당 취소된 메모리 블록을 각 청크에 대한 별도의 사용 가능한 목록에 저장하고, 사용 중인 메모리 블록이 없는 경우 운영자 삭제를 사용하여 청크를 할당 취소합니다.
각 메모리 블록은 사용 가능한 메모리의 Sz 바이트와 해당 메모리가 속한 청크에 대한 포인터를 보유합니다. 각 청크에는 메모리 블록, 세 개의 포인터, int 및 연산자 및 연산자 삭제에 필요한 데이터가 포함 Nelts
됩니다.
생성자
생성자 | Description |
---|---|
cache_chunklist | cache_chunklist 형식의 개체를 생성합니다. |
멤버 함수
멤버 함수 | 설명 |
---|---|
allocate | 메모리 블록을 할당합니다. |
deallocate | 지정된 위치부터 시작하여 스토리지에서 지정된 개수의 개체를 해제합니다. |
요구 사항
헤더:<할당자>
네임스페이스: stdext
cache_chunklist::allocate
메모리 블록을 할당합니다.
void *allocate(std::size_t count);
매개 변수
count
할당할 배열의 요소 수입니다.
Return Value
할당된 개체에 대한 포인터입니다.
설명
cache_chunklist::cache_chunklist
cache_chunklist
형식의 개체를 생성합니다.
cache_chunklist();
설명
cache_chunklist::d올로세이트
지정된 위치부터 시작하여 스토리지에서 지정된 개수의 개체를 해제합니다.
void deallocate(void* ptr, std::size_t count);
매개 변수
ptr
스토리지에서 할당을 취소할 첫 번째 개체에 대한 포인터입니다.
count
스토리지에서 할당을 취소할 개체의 수입니다.