SeqAn3  3.0.0
The Modern C++ library for sequence analysis.
iterator

The <iterator> header from C++20's standard library. More...

+ Collaboration diagram for iterator:

Classes

interface  std::BidirectionalIterator
 The concept BidirectionalIterator refines std::ForwardIterator by adding the ability to move an iterator backward. More...
 
interface  std::ContiguousIterator
 The concept ContiguousIterator refines std::RandomAccessIterator by requiring that for every iterator i and distance n where (a + n) is a valid iterator *(a + n) is equivalent to *(std::addressof(*a) + n). More...
 
interface  std::ForwardIterator
 The InputIterator concept is a refinement of std::Iterator, adding the requirement that the referenced values can be read (via std::Readable) and the requirement that the iterator category tag be present. More...
 
interface  std::Incrementable
 The concept Incrementable specifies the requirements on a type that can be incremented (with the pre- and post-increment operators). The increment operations (including those required by std::WeaklyIncrementable) are required to be equality-preserving, and the type is required to be std::EqualityComparable. More...
 
struct  std::incrementable_traits< t >
 A type trait class that provides uniform interface to the properties of types that model the WeaklyIncrementable concept.
 
interface  std::InputIterator
 The InputIterator concept is a refinement of std::Iterator, adding the requirement that the referenced values can be read (via std::Readable) and the requirement that the iterator category tag be present. More...
 
interface  std::Iterator
 The Iterator concept forms the basis of the iterator concept taxonomy; every iterator satisfies the Iterator requirements. More...
 
interface  std::OutputIterator
 The OutputIterator concept is a refinement of std::Iterator, adding the requirement that it can be used to write values of values of type and value category encoded by T (via std::Writable). std::EqualityComparable is not required. More...
 
interface  std::RandomAccessIterator
 The concept RandomAccessIterator refines std::BidirectionalIterator by adding support for constant time advancement with the +=, +, -=, and - operators, constant time computation of distance with -, and array notation with subscripting. More...
 
interface  std::Readable
 The concept Readable is satisfied by types that are readable by applying operator*, such as pointers, smart pointers, and iterators. More...
 
interface  std::Sentinel
 The Sentinel concept specifies the relationship between an std::Iterator type and a std::Semiregular type whose values denote a range. More...
 
interface  std::SizedSentinel
 The SizedSentinel concept specifies that an object of the iterator type I and an object of the sentinel type S can be subtracted to compute the distance between them in constant time. More...
 
interface  std::WeaklyIncrementable
 The concept WeaklyIncrementable specifies the requirements on a type that can be incremented (with the pre- and post-increment operators). The increment operations need not be equality-preserving, and the type need not be std::EqualityComparable. More...
 
interface  std::Writable
 The concept Writable<Out, T> specifies the requirements for writing a value whose type and value category are encoded by T into an iterator Out's referenced object. More...
 

Typedefs

using std::ranges::advance = ::ranges::advance
 Alias for ranges::advance. Advances the iterator by the given distance.
 
using std::ranges::default_sentinel = ::ranges::default_sentinel
 Alias for ranges::default_sentinel. Empty sentinel object for use with iterators that know the bound of their range.
 
using std::ranges::default_sentinel_t = ::ranges::default_sentinel_t
 Alias for ranges::default_sentinel_t. Type of ranges::default_sentinel.
 
using std::ranges::distance = ::ranges::distance
 Alias for ranges::distance. Returns the number of hops from first to last.
 
template<typename t >
using std::iter_difference_t = typename detail::incrementable_traits_or_iterator_traits< t >::difference_type
 Defines the incrementable type's difference type. More...
 
using std::ranges::iter_move = ::ranges::iter_move
 Alias for ranges::iter_move. Casts the result of dereferencing an object to its associated rvalue reference type.
 
using std::ranges::iter_swap = ::ranges::iter_swap
 Alias for ranges::iter_swap. Exchanges the values denoted by its arguments.
 
using std::ranges::next = ::ranges::next
 Alias for ranges::next. Returns the nth successor of the given iterator.
 
using std::ranges::prev = ::ranges::prev
 Alias for ranges::prev. Returns the nth predecessor of the given iterator.
 

Functions

template<typename container_t >
constexpr auto std::back_inserter (container_t &container)
 Create a std::back_insert_iterator for the argument. More...
 

Detailed Description

The <iterator> header from C++20's standard library.

Typedef Documentation

◆ iter_difference_t

template<typename t >
using std::iter_difference_t = typedef typename detail::incrementable_traits_or_iterator_traits<t>::difference_type

Defines the incrementable type's difference type.

Template Parameters
tThe type to get the difference type for.
See also
https://en.cppreference.com/w/cpp/iterator/iter_t

Function Documentation

◆ back_inserter()

template<typename container_t >
constexpr auto std::back_inserter ( container_t &  container)

Create a std::back_insert_iterator for the argument.

Template Parameters
container_tType of the parameter; must have a push_back() member function.
Parameters
containerThe container on which to create the iterator.
Returns
The respective back insert iterator.

This function delegates to ranges::back_inserter from range-v3; it is more constrained than a possibly outdated one from the standard library.