Category: adaptors |
Component type: type |
The filter_view template represents objects that
reference one container, and that have methods for accessing its
elements. The properties of any filter_view
instance
depend on the properties of the container template
parameter. More accurately, a filter_view
referencing a
Container provides a Container
interface, a filter_view
referencing Forward
Containers provides a Forward Container interface.
The filter_view
presents only those elements for
which its predicate is true.
The properties of the order of elements are the same as those provided by the underlying container, as is the validity of more than one active iterators at any one time.
filter_views
are mutable if and only if the const_tag
template parameter is mutable_view_tag
.
Note that changing elements of the container may result in
invalidated iterators and may change the size of the view. Thus, use
mutable views only if you really know what you are doing.
A filter_view
owns its referenced container, if its
base template parameter is aggregated_ownership,
it merely
references its container, if the base template parameter is
referenced_ownership.
Parameter |
Description |
Default |
container |
The view's container type: the type of container referenced by this view |
|
predicate |
The view's predicate type: the type of the predicate used to filter the container's elements |
|
|
The view's const tag: either |
|
|
The view's directional iterator category |
|
|
The view's ownership type: the base class that determines if the view references or owns the container |
|
Defined in the header filter_view.hpp.
T has to be assignable. predicate has to be a
predicate with argument type container::value_type.
predicate
's operator()
has to be a const
member. The requirements the filter_view
satisfies
depend on the requirements its template parameters satisfy:
Container satisfies |
View satisfies |
Container [1] |
|
Forward Container [1] |
Member |
Where defined |
Description |
|
The type T of the elements accessed through the container. |
|
|
The type of the referenced container. |
|
|
The type of the filtering predicate. |
|
|
Pointer to T. |
|
|
Reference to T. |
|
|
Const reference to T. |
|
|
An unsigned integral type. |
|
|
A signed integral type. |
|
|
Iterator used to iterate through the view. |
|
|
Const iterator used to iterate through the view. |
|
|
Iterator used to iterate backwards through a container. |
|
|
Const iterator used to iterate backwards through a container. |
|
|
Returns an iterator pointing to the begin of the view. |
|
|
Returns an iterator pointing to the end of the view. |
|
|
Returns a const_iterator pointing to the begin of the view. |
|
|
Returns a const_iterator pointing to the end of the view. |
|
|
Valid for reversible
container's only. Returns a |
|
|
Valid for reversible
container's only. Returns a |
|
|
Valid for reversible
container's only. Returns a |
|
|
Valid for reversible
container's only. Returns a |
|
|
Returns the size of the view. [1] |
|
|
Returns the largest possible size of the view. |
|
|
true if the view's size is 0. |
|
|
The behaviour of default constructed views is undefined, except for subsequent assignment. This is only provided to satisfy the Default Constructible requirement. |
|
|
Creates a view of given container. |
|
|
Swaps the two views. Iterators are invalidated by this operation. For referencing views, the containers themselves are not swapped. |
|
|
Tests two views for equality. This is a global function, not a member function. Views may be equal even if their referenced containers are not. |
|
|
Lexicographical comparison. This is a global function, not a member function. |
[1] A filter_view
satisfies all the
requirements of container, except for size()
and
iterator increment/decrement not guaranteeing constant complexity.
VTL Home
Copyright
© 1999 Konrad-Zuse-Zentrum für Informationstechnik Berlin &
Gary Powell All Rights Reserved.