Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost Pointer Container Library

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Boost Pointer Container Library

Class ptr_map_adapter

Этот класс используется для создания пользовательских контейнеров указателей с базовым картографическим контейнером. Интерфейс класса является расширением интерфейса отassociative_ptr_container.

Иерархия:

Навигация:

Синопсис:

namespace boost
{
    template
    < 
        class T,
        class VoidPtrMap, 
        class CloneAllocator = heap_clone_allocator 
    >
    class ptr_map_adapter 
    {
    public: // typedefs
        typedef VoidPtrMap::key_type key_type;
        typedef T*                   mapped_type;
        typedef T&                   mapped_reference;
        typedef const T&             const_mapped_reference;
        typedef ...                  value_type;
        typedef ...                  reference;
        typedef ...                  const_reference;
        typedef ...                  pointer;
        typedef ...                  const_pointer;  
        
    public: // modifiers         
        std::pair<iterator,bool>  insert( key_type& k, T* x );                         
        template< class U >
        std::pair<iterator,bool>  insert( const key_type& k, std::auto_ptr<U> x );                         
    public; // lookup
        T&       operator[]( const key_type& key );
        T&       at( const key_type& key );
        const T& at( const key_type& key ) const;
        
    public: // pointer container requirements
        bool      transfer( iterator object, ptr_map_adapter& from );
        size_type transfer( iterator first, iterator last, ptr_map_adapter& from );
        template< class Range >
        size_type transfer( const Range& r, ptr_map_adapter& from );
        size_type transfer( ptr_map_adapter& from );
            
    }; //  class 'ptr_map_adapter'
} // namespace 'boost'  

Semantics

Semantics: typedefs

Определены следующие типы осуществления:

typedef ... value_type;
typedef ... reference;
typedef ... const_reference;
typedef ... pointer;
typedef ... const_pointer;  

Однако структура типа имитируетstd::pairs.t. можно использоватьпервыйивторойчлены. Типы ссылок не являются реальными ссылками, а типы указателей не являются реальными указателями. Тем не менее, можно написать

map_type::value_type       a_value      = *m.begin();
a_value.second->foo();
map_type::reference        a_reference  = *m.begin();
a_reference.second->foo();
map_type::const_reference  a_creference = *const_begin(m);
map_type::pointer          a_pointer    = &*m.begin();
a_pointer->second->foo();
map_type::const_pointer    a_cpointer   = &*const_begin(m);

Отличие отstd::mapявляется то, что константа распространяется на указатель (то есть навторой) вconst_itertor.

Semantics: modifiers

  • std::pairвставитьkey_type&k,значение_typex;

    • Требования:x!=0
    • Эффекты: берет на себя ответственностьхи вставляет его iff, его эквивалента уже нет. Часть болта возвращаемого значения указывает на вставку, а итератор указывает на элемент с ключомx.
    • Броски: bad_pointer, еслиx==0
    • Безопасность: сильная гарантия
  • шаблон<классU>std::pairвставитьconstключ_type&k,std::auto_ptrx;

    • Эквивалентно [но безconst_cast):возвратвставкаconst_cast(k),x.release();

Semantics: lookup

  • T&оператор [] [constkey_type&ключ;

    • Эффекты: возвращает объект с ключомключ, если он существует; в противном случае выделяется и вставляется новый объект и возвращается его ссылка.
    • Безопасность: сильная гарантия
  • T&          atconstkey_type&key;

  • constT&atconstkey_type &jey]const;

    • Требование: ключ существует
    • Броски:bad_ptr_container_operation, если ключа не существует

Semantics: pointer container requirements

  • booltransferiteratorобъект,ptr_map_adapter&из;

    • Требования:неот.empty()
    • Эффекты: Вставляет объект, определенный, в контейнер и удаляет его изиз.
    • Возвращение: был ли передан объект
    • Безопасность: сильная гарантия
  • размер_типпереноситераторпервый,итераторпоследний,ptr__set_adapter&от;

    • Требования:неот.empty()
    • Эффекты: Вставляет объекты, определенные диапазоном[первый, последний]в контейнер и удаляет его изиз. Объект передается только в том случае, если не существует эквивалентного объекта.
    • Возврат: количество переданных объектов
    • Безопасность: Базовая гарантия
  • шаблон<классдиапазонпустотапередачаконстконстr,ptr_map_adapter &отот

      • Эффекты:возвращениепередачаповышение::gin(r),повышение::end(r),отот
    • размер_типперенос [ptr_set_adapter&от;

      • Эффекты:возвратпереносот.begin(),от.end(),от] .

    Copyright:Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt).

Статья Boost Pointer Container Library раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 20:54:07/0.0090639591217041/1