allocator

    1

    3답변

    은 '당신이 std::vector 사용하려는 최적화 된 사용자 정의 할당 (예를 들어, 작은 할당에 대한 사용자 정의 할당이 std::string 같은 종류의 대신 힙의 스택에서 메모리를 가져옵니다 개발 된 가정 또는 Windows에서 예를 들어 VirtualAlloc을 사용하여 큰 용량의 메모리를 할당 한 다음 포인터를 증가시키는 청크 내부에서 단일 할당

    4

    2답변

    할당 자에 대한 몇 가지 개념에 대해 잘못 이해했을 수 있습니다. 하지만 실제로 할당 할 객체의 수를 나타 내기 위해 allocate으로 전달되는 std::size_t의 인수가 필요한 이유를 모르겠습니다. 인수가 배열이나 벡터 같은 메모리 영역을 할당하는 데 사용됩니까? 만약 내가이라면 이전에 반환 된 포인터가 영역이나 객체만을 가리키는 지 어떻게 알 수

    0

    1답변

    제 생각에 사용자 지정 할당자는 Allocator Concept의 requierements에 맞아야합니다. 해당 인터페이스를 기반으로하지만, 내가 벡터 할당량이 부족할 때 새로운 할당량을 선택하는 방법을 볼 수 없습니다. 예를 들어, 내 컴퓨터의 현재 구현은 reserve이 초과 될 때마다 push_back() 동안 할당 크기를 두 배로 늘립니다. 느리고

    3

    1답변

    std::allocator을 사용하여 new 및 delete을 랩핑하는 사용자 지정 벡터를 작성한다고 가정 해 봅시다. 요소 수가 벡터의 용량을 초과하면 버퍼를 더 큰 것으로 재 할당하고 싶습니다. realloc()으로 전화하면 쉽게 해결할 수 있습니다. 할당 자/할당 취소의 책임은 할당 자에 있어야한다고 생각했기 때문에이 작업을 수행하고 싶지 않습니다.

    4

    3답변

    최근에 C++ 할당자가 어떻게 작동하는지 이해하려고 시도했으며 STL 라이브러리가 std::set 또는 std::map과 같은 항목에 사용하는 빨강 - 검정 트리 구현을 조사했습니다. ,하지만 내 머리를 얻을 수없는 것들이 있습니다. typedef typename __gnu_cxx::__alloc_traits<_Alloc>::template reb

    4

    1답변

    어떻게 작동하는지 이해하려고 노력하는 할당 자들과 공부/놀고 있습니다. 하지만 할당자를 받아들이는 사소한 컨테이너를 구현하려고 할 때 문제가 발생합니다. 그것은 나에게 member function 'allocate' not viable: 'this' argument has type 'const allocator_type' (aka 'const std::__

    1

    1답변

    방금 ​​new 및 delete 연산자를 재정의하는 개인 프로젝트를 완료했으며 그 과정에서 할당 자 클래스에 대해 배우게되었습니다. cppreference.com을 비롯한 여러 온라인 참조 서를 읽은 후에 많은 기능이 선택적으로 설명됩니다. 제 질문은 어떻게 할당 자 수신자입니까? std::set, 수신 된 할당자가 선택적으로 함수와 유형을 구현하는 경우

    12

    1답변

    , 나는 볼이 회원 : value_type, pointer, const_pointer, difference_type size_type, 및 rebind 모든 사용되지 않습니다 const_reference, reference. address, max_size, construct, 또는 destroy : 소산은 더 이상 회원이 없습니다. 왜 이런 일이 발생 했

    17

    1답변

    C++ 17은 메모리 할당 및 할당 해제를위한 깨끗한 인터페이스 인 std::pmr::memory_resource을 가져올 것입니다. Allocator 개념과 달리 은 단지 이상입니다. std::pmr::polymorphic_allocator도 메모리 리소스를 고전적인 할당 자로 래핑하여 기존 컨테이너와 함께 사용할 수 있습니다. 나는 새 컨테이너 대해 쓸

    0

    3답변

    빠른 질문 : 1.I 배열을 할당, 여분의 메모리가 들었 : 위의 코드에 따라서 template <class T> T* allocate(std::size_t n){ return new T[n]; } , 우리는 new T[1]을하고있는 n==1, 그래서 나는이 걱정이 배열의 길이를 저장하는 데 사용됩니다 (확신 할 수 없음). new T[1]