dune-istl  2.5-git
Public Types | Public Member Functions | Protected Attributes | List of all members
Dune::base_array_window< B, A > Class Template Reference

Extend base_array_unmanaged by functions to manipulate. More...

#include <dune/istl/basearray.hh>

Inheritance diagram for Dune::base_array_window< B, A >:
Inheritance graph

Public Types

typedef B member_type
 export the type representing the components More...
 
typedef A allocator_type
 export the allocator type More...
 
typedef base_array_unmanaged< B, A >::iterator iterator
 make iterators available as types More...
 
typedef base_array_unmanaged< B, A >::const_iterator const_iterator
 make iterators available as types More...
 
typedef base_array_unmanaged< B, A >::size_type size_type
 The type used for the index access. More...
 
typedef A::difference_type difference_type
 The type used for the difference between two iterator positions. More...
 

Public Member Functions

 base_array_window ()
 makes empty array More...
 
 base_array_window (B *_p, size_type _n)
 make array from given pointer and size More...
 
void set (size_type _n, B *_p)
 set pointer and length More...
 
void advance (difference_type newsize)
 advance pointer by newsize elements and then set size to new size More...
 
void move (difference_type offset, size_type newsize)
 increment pointer by offset and set size More...
 
void move (difference_type offset)
 increment pointer by offset, leave size More...
 
B * getptr ()
 return the pointer More...
 
B & operator[] (size_type i)
 random access to blocks More...
 
const B & operator[] (size_type i) const
 same for read only access More...
 
iterator begin ()
 begin iterator More...
 
const_iterator begin () const
 begin const_iterator More...
 
iterator end ()
 end iterator More...
 
const_iterator end () const
 end const_iterator More...
 
iterator beforeEnd ()
 
const_iterator beforeEnd () const
 
iterator beforeBegin ()
 
const_iterator beforeBegin () const
 
iterator find (size_type i)
 random access returning iterator (end if not contained) More...
 
const_iterator find (size_type i) const
 random access returning iterator (end if not contained) More...
 
size_type size () const
 number of blocks in the array (are of size 1 here) More...
 

Protected Attributes

size_type n
 
B * p
 

Detailed Description

template<class B, class A = std::allocator<B>>
class Dune::base_array_window< B, A >

Extend base_array_unmanaged by functions to manipulate.

This container has NO memory management at all, copy constuctor, assignment and destructor are all default. A container can be constructed as empty or from a given pointer and size. This class is used to implement a view into a larger array.

You can copy such an object to a base_array to make a real copy.

Error checking: no error checking is provided normally.
Setting the compile time switch DUNE_ISTL_WITH_CHECKING
enables error checking.

Member Typedef Documentation

§ allocator_type

template<class B , class A = std::allocator<B>>
typedef A Dune::base_array_window< B, A >::allocator_type

export the allocator type

§ const_iterator

template<class B , class A = std::allocator<B>>
typedef base_array_unmanaged<B,A>::const_iterator Dune::base_array_window< B, A >::const_iterator

make iterators available as types

§ difference_type

template<class B , class A = std::allocator<B>>
typedef A::difference_type Dune::base_array_window< B, A >::difference_type

The type used for the difference between two iterator positions.

§ iterator

template<class B , class A = std::allocator<B>>
typedef base_array_unmanaged<B,A>::iterator Dune::base_array_window< B, A >::iterator

make iterators available as types

§ member_type

template<class B , class A = std::allocator<B>>
typedef B Dune::base_array_window< B, A >::member_type

export the type representing the components

§ size_type

template<class B , class A = std::allocator<B>>
typedef base_array_unmanaged<B,A>::size_type Dune::base_array_window< B, A >::size_type

The type used for the index access.

Constructor & Destructor Documentation

§ base_array_window() [1/2]

template<class B , class A = std::allocator<B>>
Dune::base_array_window< B, A >::base_array_window ( )
inline

makes empty array

§ base_array_window() [2/2]

template<class B , class A = std::allocator<B>>
Dune::base_array_window< B, A >::base_array_window ( B *  _p,
size_type  _n 
)
inline

make array from given pointer and size

Member Function Documentation

§ advance()

template<class B , class A = std::allocator<B>>
void Dune::base_array_window< B, A >::advance ( difference_type  newsize)
inline

advance pointer by newsize elements and then set size to new size

§ beforeBegin() [1/2]

template<class B, class A = std::allocator<B>>
iterator Dune::base_array_unmanaged< B, A >::beforeBegin ( )
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.

§ beforeBegin() [2/2]

template<class B, class A = std::allocator<B>>
const_iterator Dune::base_array_unmanaged< B, A >::beforeBegin ( ) const
inlineinherited
Returns
an iterator that is positioned before the first entry of the vector.

§ beforeEnd() [1/2]

template<class B, class A = std::allocator<B>>
iterator Dune::base_array_unmanaged< B, A >::beforeEnd ( )
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector, i.e. at the last entry.

§ beforeEnd() [2/2]

template<class B, class A = std::allocator<B>>
const_iterator Dune::base_array_unmanaged< B, A >::beforeEnd ( ) const
inlineinherited
Returns
an iterator that is positioned before the end iterator of the vector. i.e. at the last element.

§ begin() [1/2]

template<class B, class A = std::allocator<B>>
iterator Dune::base_array_unmanaged< B, A >::begin ( )
inlineinherited

begin iterator

§ begin() [2/2]

template<class B, class A = std::allocator<B>>
const_iterator Dune::base_array_unmanaged< B, A >::begin ( ) const
inlineinherited

begin const_iterator

§ end() [1/2]

template<class B, class A = std::allocator<B>>
iterator Dune::base_array_unmanaged< B, A >::end ( )
inlineinherited

end iterator

§ end() [2/2]

template<class B, class A = std::allocator<B>>
const_iterator Dune::base_array_unmanaged< B, A >::end ( ) const
inlineinherited

end const_iterator

§ find() [1/2]

template<class B, class A = std::allocator<B>>
iterator Dune::base_array_unmanaged< B, A >::find ( size_type  i)
inlineinherited

random access returning iterator (end if not contained)

§ find() [2/2]

template<class B, class A = std::allocator<B>>
const_iterator Dune::base_array_unmanaged< B, A >::find ( size_type  i) const
inlineinherited

random access returning iterator (end if not contained)

§ getptr()

template<class B , class A = std::allocator<B>>
B* Dune::base_array_window< B, A >::getptr ( )
inline

return the pointer

§ move() [1/2]

template<class B , class A = std::allocator<B>>
void Dune::base_array_window< B, A >::move ( difference_type  offset,
size_type  newsize 
)
inline

increment pointer by offset and set size

§ move() [2/2]

template<class B , class A = std::allocator<B>>
void Dune::base_array_window< B, A >::move ( difference_type  offset)
inline

increment pointer by offset, leave size

§ operator[]() [1/2]

template<class B, class A = std::allocator<B>>
B& Dune::base_array_unmanaged< B, A >::operator[] ( size_type  i)
inlineinherited

random access to blocks

§ operator[]() [2/2]

template<class B, class A = std::allocator<B>>
const B& Dune::base_array_unmanaged< B, A >::operator[] ( size_type  i) const
inlineinherited

same for read only access

§ set()

template<class B , class A = std::allocator<B>>
void Dune::base_array_window< B, A >::set ( size_type  _n,
B *  _p 
)
inline

set pointer and length

§ size()

template<class B, class A = std::allocator<B>>
size_type Dune::base_array_unmanaged< B, A >::size ( ) const
inlineinherited

number of blocks in the array (are of size 1 here)

Member Data Documentation

§ n

template<class B, class A = std::allocator<B>>
size_type Dune::base_array_unmanaged< B, A >::n
protectedinherited

§ p

template<class B, class A = std::allocator<B>>
B* Dune::base_array_unmanaged< B, A >::p
protectedinherited

The documentation for this class was generated from the following file: