С++ вопросы : Вопрос 1 : 68

Для чего нужен аллокатор и как создать свой собственный аллокатор?

 

Уважаемые учащиеся ниже Вы сможете увидеть ответ, перед тем, как ответить, пожалуйста, постарайтесь написать для себя ответ на черновике, и только потом сравните наш ответ с Вашим: 

 

 

 

 

 

Верно ли наше решение?

Ответ:

Аллокатор это шаблонный класс, который отвечает за выделение памяти и создание объектов. По умолчанию все контейнера используют std::allocator<T>. 
В языке c++ имеется так же возможность написать свой аллокатор. У своего алокатора должно быть такое объявление:

template <class T> 
    class my_allocator  
    { 
      typedef size_t    size_type; 
      typedef ptrdiff_t difference_type; 
      typedef T*        pointer; 
      typedef const T*  const_pointer; 
      typedef T&        reference; 
      typedef const T&  const_reference; 
      typedef T         value_type; 
 
      pointer allocate(size_type st, const void* hint = 0); 
      void deallocate (pointer p, size_type st); 
      void construct (pointer p, const_reference val); 
      void destroy (pointer p); 
      template <class U>  
      struct rebind { typedef allocator<U> other; }; 
    }; 
1 балл


© Copyright © 2017 - 2019 Все права защищены. Бесплатное онлайн образование.
  • https://disdik.munabarat.go.id/nusantara/slot/
  • https://dispendik.sidoarjokab.go.id/nuansa/gacor/
  • https://dkpd.grobogan.go.id/jakarta/gacor/
  • https://sbobet88.blog.unsia.ac.id
  • https://pafinusantara.blog.unsia.ac.id/bet88
  • https://idn-poker.blog.unsia.ac.id
  • https://slot777-gacor.blog.unsia.ac.id
  • https://agen-188bet.blog.unsia.ac.id
  • https://situs-slot.blog.unsia.ac.id
  • https://bet88-slot.blog.unsia.ac.id
  • https://2021.kinerja.ekon.go.id/up/slot777
  • https://2021.kinerja.ekon.go.id/halal/bet88
  • https://program-gacor.blog.unsia.ac.id
  • surapati.ac.id
  • untagsby.ac.id
  • kingandiboston.com
  • janeashton.com
  • redbrickcafechester.com
  • villanosdeljazz.com
  • slot