Quantum++  v1.2
A modern C++11 quantum computing library
qpp::QCircuit::iterator Class Reference

Quantum circuit bound-checking (safe) iterator. More...

#include <classes/circuits.h>

Collaboration diagram for qpp::QCircuit::iterator:

Classes

class  value_type_
 

Public Types

using difference_type = long long
 iterator trait More...
 
using value_type = value_type_
 iterator trait More...
 
using pointer = const value_type *
 iterator trait More...
 
using reference = const value_type &
 iterator trait More...
 
using iterator_category = std::forward_iterator_tag
 iterator trait More...
 

Public Member Functions

 iterator ()=default
 Default constructor. More...
 
 iterator (const iterator &)=default
 Default copy constructor. More...
 
iteratoroperator= (const iterator &)=default
 Default copy assignment operator. More...
 
iteratoroperator++ ()
 Prefix increment operator. More...
 
iterator operator++ (int)
 Postfix increment operator. More...
 
bool operator== (const iterator &rhs) const
 Equality operator. More...
 
bool operator!= (iterator rhs) const
 Inequality operator. More...
 
const value_type_operator* () const
 Safe de-referencing operator. More...
 
void set_begin_ (const QCircuit *qc)
 Sets the iterator to std::begin(this) More...
 
void set_end_ (const QCircuit *qc)
 Sets the iterator to std::begin(this) More...
 

Private Attributes

const QCircuitqc_ {nullptr}
 < non-owning pointer to const quantum circuit More...
 
value_type_ elem_ {nullptr}
 

Detailed Description

Quantum circuit bound-checking (safe) iterator.

Note
The iterator is a const_iterator by default

Member Typedef Documentation

◆ difference_type

iterator trait

◆ iterator_category

using qpp::QCircuit::iterator::iterator_category = std::forward_iterator_tag

iterator trait

◆ pointer

iterator trait

◆ reference

iterator trait

◆ value_type

Constructor & Destructor Documentation

◆ iterator() [1/2]

qpp::QCircuit::iterator::iterator ( )
default

Default constructor.

◆ iterator() [2/2]

qpp::QCircuit::iterator::iterator ( const iterator )
default

Default copy constructor.

Member Function Documentation

◆ operator!=()

bool qpp::QCircuit::iterator::operator!= ( iterator  rhs) const
inline

Inequality operator.

Parameters
rhsIterator against which the inequality is being tested
Returns
True if the iterators are not equal (bit by bit), false otherwise

◆ operator*()

const value_type_& qpp::QCircuit::iterator::operator* ( ) const
inline

Safe de-referencing operator.

Returns
Constant reference to the iterator element

◆ operator++() [1/2]

iterator& qpp::QCircuit::iterator::operator++ ( )
inline

Prefix increment operator.

Returns
Reference to the current instance

◆ operator++() [2/2]

iterator qpp::QCircuit::iterator::operator++ ( int  )
inline

Postfix increment operator.

Returns
Copy of the current instance before the increment

◆ operator=()

iterator& qpp::QCircuit::iterator::operator= ( const iterator )
default

Default copy assignment operator.

Returns
Reference to the current instance

◆ operator==()

bool qpp::QCircuit::iterator::operator== ( const iterator rhs) const
inline

Equality operator.

Parameters
rhsIterator against which the equality is being tested
Returns
True if the iterators are equal, false otherwise

◆ set_begin_()

void qpp::QCircuit::iterator::set_begin_ ( const QCircuit qc)
inline

Sets the iterator to std::begin(this)

Parameters
qcPointer to constant quantum circuit

◆ set_end_()

void qpp::QCircuit::iterator::set_end_ ( const QCircuit qc)
inline

Sets the iterator to std::begin(this)

Parameters
qcPointer to constant quantum circuit

Member Data Documentation

◆ elem_

value_type_ qpp::QCircuit::iterator::elem_ {nullptr}
private

◆ qc_

const QCircuit* qpp::QCircuit::iterator::qc_ {nullptr}
private

< non-owning pointer to const quantum circuit


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