Boost Pointer Container Library Boost , ,
Pointer Container Library
А.ptr_array - контейнер указателей, в котором используется базовыйусилитель::array для хранения указателей. Класс полезен, когда нет необходимости в динамическом расширении и когда нет накладных расходов.
Иерархия:
Навигация:
Синопсис:
namespace boost
{
template
<
class T,
size_t N,
CloneAllocator = heap_clone_allocator
>
class ptr_array : public implementation-defined
{
public: // construct/copy/destroy
ptr_array();
explicit ptr_array( const ptr_array& r );
template< class U >
explicit ptr_array( const ptr_array<U,N>& r );
explicit ptr_array( std::auto_ptr<ptr_array>& r );
ptr_array& operator=( const ptr_array& r );
template< class U >
ptr_array& operator=( const ptr_array<U,N>& r );
ptr_array& operator=( std::auto_ptr<this_type> r );
public: // iterators
public: // capacity
public: // element access
T& front();
const T& front() const;
T& back();
const T& back() const;
template< size_t idx >
T& at();
template< size_t idx >
const T& at() const;
T& at( size_t );
const T& at( size_t );
T& operator[]( size_t );
const T& operator[]( size_t ) const;
public: // modifiers
void swap( ptr_array& r );
template< size_t idx >
auto_type replace( T* r );
template< size_t idx, class U >
auto_type replace( std::auto_ptr<U> r );
auto_type replace( size_t idx, T* r );
template< class U >
auto_type replace( size_t idx, std::auto_ptr<U> r );
public: // pointer container requirements
std::auto_ptr<ptr_array> clone() const;
std::auto_ptr<ptr_array> release();
template< size_t idx >
bool is_null() const;
bool is_null( size_t idx ) const;
}; // class 'ptr_sequence_adapter'
} // namespace 'boost'
ptr_array();
Эффекты: конструирует массив, где каждый элемент равен нулю
эксплицитно ptr_array const ptr_array& r ;
шаблон< класс U > эксплицитный ptr_array const ptr_array& r ;
Эффекты: Построение массива путем клонированияr
ptr_array std::auto_ptr& r ;
Эффекты: взять на себя ответственность за предоставленные указатели
ptr_array& оператор = const ptr_array& r ;
шаблон< класс U > ptr_array& оператор = const ptr_array& r
Эффекты: Назначает клонr
Безопасность: сильная гарантия
ptr_array& оператор = std::auto_ptr r ;
Эффекты: взять на себя ответственность за предоставленные указатели
Альбом: Nothing
T& front();
const T& front() const;
Требования:не пустой();
Эффекты:возврат * начало();
Броски:bad_ptr_container_operation , еслипустой() == истинный
T& back();
const T& back() const;
Требования:не пустой();
Эффекты:возврат *-конец();
Броски:bad_ptr_container_operation , еслипустой() == истинный
template< size_t idx > T& at size_type n ;
template< size_t idx > const T& at size_type n const;
Требования:idx < размер() (принужденное время компиляции)
Эффекты: возвращает ссылку наn 'th элемент
Альбом: Nothing
T& при размер_тип n ;
const T& at size_type n ] const;
Требования:n < размер()
Эффекты: возвращает ссылку наn 'th элемент
Броски:bad_index , еслиn >=size()
T& оператор [] размер_тип n ;
const T& оператор [] size_type n const;
Требования:n < размер()
Эффекты: возвращает ссылку наn 'th элемент
Альбом: Nothing
void swap ptr_array& r ;
Эффекты: своп двух массивов
Сложность: линейность
Альбом: Nothing
шаблон< размер_t idx > авто_тип заменить T* r ;
Требования:
idx < размер() (время компиляции соблюдается)
r != 0
Эффекты: возвращает объект, индексируемыйidx и заменяет егоr .
Бросок:bad_pointer , еслиx == 0
.
Безопасность исключения: надежная гарантия
шаблон< size_t idx, U > auto_type std std::auto_ptr<r r;
Эффекты:возвращение замена r.release ;
auto_type заменить size_t idx, T* r ;
Требования: '' x != 0 и idx< размер(''
Эффекты: возвращает объект, проиндексированныйidx и заменяет егоx .
Броски:bad_index , еслиidx >= размер() иbad_pointer , еслиx == 0 .
Безопасность: сильная гарантия
шаблон< класс > auto_type заменить размер_t idx, std::auto_ptr r
Эффекты:вернуть заменить idx, r.release()
std::auto_ptr клон() const;
Эффекты: возвращает глубокую копию контейнера
Броски:std::bad_alloc , если памяти недостаточно для создания клона контейнера
Сложность: линейность
std::auto_ptr release();
Effects: Releases ownership of the container. Это отличный способ вернуть контейнер из функции.
Постусловия:пустой() == истинный и все указатели нулевые
Броски:std::bad_alloc , если возвращаемое значение не может быть выделено
Безопасность: сильная гарантия
шаблон< размер_t idx > bool является_null() const;
Требования:idx < размер()
Эффекты: возвращает ли указатель в индексеidx нуль
Безопасность исключения: Гарантия Nothrow
bool is_null size_type idx const;
Требования:idx < размер()
Эффекты: возвращает ли указатель в индексеidx нуль
Безопасность исключения: Гарантия Nothrow
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.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::