Карта сайта 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_vector

А.ptr_vector— контейнер указателей, использующий базовыйstd::vectorдля хранения указателей.

Иерархия:

Навигация:

Синопсис:

namespace boost
{      
    template
    < 
        class T, 
        class CloneAllocator = heap_clone_allocator,
        class Allocator      = std::allocator<void*>
    >
    class ptr_vector : public ptr_sequence_adapter
                              <
                                  T,
                                  std::vector<void*,Allocator>,
                                  CloneAllocator
                              >
    {
    public: // construction
        explicit ptr_vector( size_type to_reserve );
    
    public: // capacity
        size_type  capacity() const;
        void       reserve( size_type n );
    
    public: // element access
        T&        operator[]( size_type n );
        const T&  operator[]( size_type n ) const;
        T&        at( size_type n );
        const T&  at( size_type n ) const;
    public: // pointer container requirements
       auto_type replace( size_type idx, T* x );  
       template< class U >
       auto_type replace( size_type idx, std::auto_ptr<U> x );  
       bool      is_null( size_type idx ) const;
       
    public: // C-array support
       void transfer( iterator before, T** from, size_type size, bool delete_from = true );
       T**  c_array();
    };
   
} // namespace 'boost'  

Semantics

Semantics: construction

  • эксплицитныйptr_vectorsize_typeto_reserve;

    • конструирует пустой вектор с буфером размера наименьшимto_reserve

Semantics: capacity

  • размер_типемкостьконст;

    • Эффекты: Возвращает размер выделенного буфера
    • Альбом: Nothing
  • voidreservesize_typen;

    • Требования:n<=max_size()
    • Эффекты: Расширяет выделенный буфер
    • Постусловие:емкость()>=n
    • std::length_error()ifn>max_size()

Semantics: element access

  • T&оператор[]размер_типn;

  • constT&оператор []размер_типn]const;

    • Требования:n<размер()
    • Эффекты: возвращает ссылку наn'th элемент
    • Альбом: Nothing
  • T&atsize_typen;

  • constT&atsize_typen]const;

    • Требования:n<размер()
    • Эффекты: возвращает ссылку наn'th элемент
    • Броски:bad_index, еслиn>=размер()

Semantics: pointer container requirements

  • auto_typeзаменитьsize_typeidx,T*x;

    • Требования: x ! = 0 и idx< размер()
    • Эффекты: возвращает объект, проиндексированныйidxи заменяет егоx.
    • Бросает:bad_index, еслиidx>=размер()иbad_pointer, еслиx==0.
    • Безопасность: сильная гарантия
  • шаблон<U>auto_typeзаменяютразмер_typeidx,std::auto_ptrx;;

    • Эффекты:возвращаютзаменяютidx,x.release []x.release [] [
  • boolis_nullsize_typeidx]const;

    • Требования:idx<размер()
    • Эффекты: возвращает ли указатель в индексеidxнуль
    • Безопасность исключения: Гарантия Nothrow

Semantics: C-array support

  • недействительныйпереноситераторадо,T**от,размер_типразмер,размер,булудаление_от=истинно

  • Требования:от!=0
  • Эффекты: приобретает право собственности на динамический массивот
  • Безопасность исключения: надежная гарантия, еслиудалить_ из==истинно; еслиудалить_ из==ложно, и исключение брошено, контейнер не может взять на себя ответственность.
  • Замечания: В конце концов вызываетудалить []из, еслиудалить_ из==истинно.
  • T**c_array();

    • Возврат:0, если контейнер пуст; в противном случае указатель на первый элемент хранимого массива
    • Альбом: Nothing

  • Copyright:Thorsten Ottosen 2004-2007. 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-20 03:48:31/0.0057971477508545/1