\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)

CGAL 4.8 - STL Extensions for CGAL

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members | Public Types | Public Member Functions
CGAL::Join_input_iterator_3< I1, I2, I2, Op > Class Template Reference
Iterators and Iterator/Circulator Adaptors

`#include <CGAL/iterator.h>`

## Definition

The class `Join_input_iterator_3` joins two iterators.

The result is again an iterator (of the same iterator category type as the original iterator) that reads an object from the stream and applies a function object to that object.

Is Model Of:
  `InputIterator`

## Public Types
typedef Op::result_type | value_type
typedef std::iterator_traits < I1 >::difference_type | difference_type
typedef value_type * | pointer
typedef value_type & | reference

## Public Member Functions
I1 | current_iterator1 () const
| returns current position of the first iterator.
I2 | current_iterator2 () const
| returns current position of the second iterator.
I3 | current_iterator3 () const
| returns current position of the second iterator.
const value_type & | operator* () const
| returns `op(current_iterator1(), current_iterator2(), current_iterator3())`.

## Creation
| Join_input_iterator_3 ()
| Default constructor.
| Join_input_iterator_3 (I1 i1, I2 i2, I3 i3, const Op &op=Op())
| creates a join iterator from the given iterators `i1`, `i2`, `i3`, and the functor `op`.