ptr_array.rst

来自「Boost provides free peer-reviewed portab」· RST 代码 · 共 291 行

RST
291
字号
++++++++++++++++++++++++++++++++++ |Boost| Pointer Container Library++++++++++++++++++++++++++++++++++ .. |Boost| image:: boost.pngClass ``ptr_array``-------------------A ``ptr_array<T,size>`` is a pointer container that uses an underlying ``boost::array<void*,size>``to store the pointers. The class is useful when there is no requirementof dynamic expansion and when no overhead is tolerable.**Hierarchy:**- `reversible_ptr_container <reversible_ptr_container.html>`_  - `ptr_sequence_adapter <ptr_sequence_adapter.html>`_    - `ptr_vector <ptr_vector.html>`_    - `ptr_list <ptr_list.html>`_     - `ptr_deque <ptr_deque.html>`_    - ``ptr_array``**Navigate:**- `home <ptr_container.html>`_- `reference <reference.html>`_**Synopsis:**.. parsed-literal::                     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'  .. _iterators: reversible_ptr_container.html#iterators.. _capacity: reversible_ptr_container.html#capacity.. _`inherited element access`: reversible_ptr_container.html#element-accessSemantics---------.. _`construct/copy/destroy`:Semantics: construct/copy/destroy^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- ``ptr_array();``    - Effects: constructs array where each element is null    -   ``explicit ptr_array( const ptr_array& r );``-   ``template< class U >    explicit ptr_array( const ptr_array<U,N>& r );``        - Effects: Constructs array by cloning ``r``                          - ``ptr_array( std::auto_ptr<ptr_array>& r );``    - Effects: take ownership of the supplied pointers- ``ptr_array& operator=( const ptr_array& r );``- ``template< class U > ptr_array& operator=( const ptr_array<U,N>& r );``    - Effects: Assigns a clone of ``r``        - Exception safety: Strong guarantee    - ``ptr_array& operator=( std::auto_ptr<this_type> r );``   - Effects: take ownership of the supplied pointers   - Throws: Nothing.. _`element access`:Semantics: element access^^^^^^^^^^^^^^^^^^^^^^^^^- ``T&       front();``- ``const T& front() const;``    - Requirements: ``not empty();``    - Effects: ``return *begin();``    - Throws: ``bad_ptr_container_operation`` if ``empty() == true``- ``T&       back();``- ``const T& back() const;``    - Requirements: ``not empty();``    - Effects: ``return *--end();``    - Throws: ``bad_ptr_container_operation`` if ``empty() == true``- ``template< size_t idx > T&       at( size_type n );``- ``template< size_t idx > const T& at( size_type n ) const;``    - Requirements: ``idx < size()`` (compile-time enforced)    - Effects: Returns a reference to the ``n``'th element    - Throws: nothing- ``T&       at( size_type n );``- ``const T& at( size_type n ) const;``    - Requirements: ``n < size()``    - Effects: Returns a reference to the ``n``'th element    - Throws: ``bad_index`` if ``n >=size()``- ``T&       operator[]( size_type n );``- ``const T& operator[]( size_type n ) const;``    - Requirements: ``n < size()``    - Effects: Returns a reference to the ``n``'th element    - Throws: Nothing.. _`modifiers`:Semantics: modifiers^^^^^^^^^^^^^^^^^^^^- ``void swap( ptr_array& r );``    - Effects: swaps the two arrays        - Complexity: Linear    - Throws: nothing    - ``template< size_t idx > auto_type replace( T* r );``    - Requirements:                 - ``idx < size()`` (compile-time enforced)            - ``r != 0``    - Effects: returns the object indexed by ``idx`` and replaces it with ``r``.    - Throws: ``bad_pointer`` if ``x == 0``.    - Exception safety: Strong guarantee    - ``template< size_t idx, class U > auto_type replace( std::auto_ptr<U> r );``    - Effects: ``return replace<idx>( r.release() );``- ``auto_type replace( size_t idx, T* r );``            - Requirements: `` x != 0 and idx < size()``    - Effects: returns the object indexed by ``idx`` and replaces it with ``x``.    - Throws: ``bad_index`` if ``idx >= size()`` and ``bad_pointer`` if ``x == 0``.    - Exception safety: Strong guarantee- ``template< class U > auto_type replace( size_t idx, std::auto_ptr<U> r );``    - Effects: ``return replace( idx, r.release() );``    .. _`pointer container requirements`:Semantics: pointer container requirements^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^- ``std::auto_ptr<ptr_array>  clone() const;``    - Effects: Returns a deep copy of the container    - Throws: ``std::bad_alloc`` if there is not enough memory to make a clone of the container    - Complexity: Linear    - ``std::auto_ptr<ptr_array>  release();``         - Effects: Releases ownership of the container. This is a useful way of returning a container from a function.    - Postconditions: ``empty() == true`` and all pointers are null    - Throws: ``std::bad_alloc`` if the return value cannot be allocated    - Exception safety: Strong guarantee- ``template< size_t idx > bool is_null() const;``    - Requirements: ``idx < size()`` (compile-time enforced)    - Effects: returns whether the pointer at index ``idx`` is null    - Exception safety: Nothrow guarantee- ``bool is_null( size_type idx ) const;``    - Requirements: ``idx < size()``    - Effects: returns whether the pointer at index ``idx`` is null    - Exception safety: Nothrow guarantee.. raw:: html         <hr>:Copyright:     Thorsten Ottosen 2004-2006. Use, modification and distribution is subject to the Boost Software License, Version 1.0 (see LICENSE_1_0.txt__).__ http://www.boost.org/LICENSE_1_0.txt

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?