View Template Library


zip_view<Cont_A, Cont_B, BinOp, Const_tag, Iter_tag, Base_A, Base_B>

Category: adaptors

Component type: type

Description

The zip_view template represents the BinOp(a,b) for corresponding elements a in container_a and b in container_b.

zip_views are mutable if and only if the const_tag template parameter is mutable_view_tag. Note that changing elements of the containers may result in invalidated iterators and may change the size of the view.

A zip_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.

Template parameters

Parameter

Description

Default

container_a

The view's container type: the type of container referenced by this view


container_b

The view's container type: the type of container referenced by this view


BinOp

The view's operator, for every element [i,j].

reference_pair<container_a::reference, container_b::reference>

const_tag

The view's const tag: either const_view_tag or mutable_view_tag

const_view_tag

iterator_tag

The view's directional iterator category

The minium of container_a::iterator::iterator_cateory and container_b::iterator::iterator_category whichever is the lesser.

base_a

The view's ownership type: the base_a class that determines if the view references or owns the container_a

referenced_ownership

base_b

The view's ownership type: the base_b class that determines if the view references or owns the container_b

referenced_ownership

Definition

Defined in the header zip_view.hpp.

Model of

Dual Container View

Type requirements



Container satisfies

View satisfies

Container

Container [1]

Forward Container

Forward Container [1]

Reversible Container

Reversible Container [1]

Random Access Container

Random Access Container [1]

Members

Member

Where defined

Description

value_type

Container

The type BinOp::result_type of the elements accessed through the container.

domain_type_a

Dual View

The type of the referenced container_a.

domain_type_b

Dual View

The type of the referenced container_b.

pointer

Container

Pointer to T.

reference

Container

Reference to T.

const_reference

Container

Const reference to T.

size_type

Container

An unsigned integral type.

difference_type

Container

A signed integral type.

iterator

Container

Iterator used to iterate through the view.

const_iterator

Container

Const iterator used to iterate through the view.

reverse_iterator

Reversible Container

Iterator used to iterate backwards through the view.

const_reverse_iterator

Reversible Container

Const iterator used to iterate backwards through the view.

iterator begin()

Container

Returns an iterator pointing to the begin of the view.

iterator end()

Container

Returns an iterator pointing to the end of the view.

const_iterator begin() const

Container

Returns a const_iterator pointing to the begin of the view.

const_iterator end() const

Container

Returns a const_iterator pointing to the end of the view.

reverse_iterator rbegin()

Reversible Container

Valid for reversible container's only. Returns a reverse_iterator pointing to the beginning of the reversed view.

reverse_iterator rend()

Reversible Container

Valid for reversible container's only. Returns a reverse_iterator pointing to the end of the reversed view.

const_reverse_iterator rbegin() const

Reversible Container

Valid for reversible container's only. Returns a const_reverse_iterator pointing to the beginning of the reversed view.

const_reverse_iterator rend() const

Reversible Container

Valid for reversible container's only. Returns a const_reverse_iterator pointing to the end of the reversed view.

size_type size() const

Container

Returns the size of the view.

size_type max_size() const

Container

Returns the largest possible size of the view.

bool empty() const

Container

true if the view's size is 0.

reference operator[](size_type n)

Random access container

Returns a reference to the [n]th element in the view. Only supported if both containers are random access.

const_reference operator[](size_type n)const

Random access container

Returns a const_reference to the [n]th element in the view. Only supported if both containers are random access.

value_type at(size_type n)

Random access container

Returns a value_type for the [n]th element in the view. Only supported if both containers are random access. Does a range check on n and will throw std::range_error if it fails.

zip_view()

Default Constructible

Creates an empty view.

zip_view(container_a&, container_b&, comp = compare_fn())


Creates a view of given container.

void swap(zip_view&)

Container

Swaps the two views. Iterators are invalidated by this operation. For referencing views, the containers themselves are not swapped.

bool operator==(const zip_view&, const zip_view&)

Forward Container

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.

bool operator<(const zip_view&, const zip_view&)

Forward Container

Lexicographical comparison. This is a global function, not a member function.

Notes

[1]


VTL Home
Copyright © 1999 Konrad-Zuse-Zentrum für Informationstechnik Berlin & Gary Powell All Rights Reserved.