Google OR-Tools: ortools/graph/iterators.h Source File
16#ifndef UTIL_GRAPH_ITERATORS_H_
17#define UTIL_GRAPH_ITERATORS_H_
25namespace util {
47template <typename Iterator>
51 using value_type = typename std::iterator_traits<Iterator>::value_type;
58 Iterator begin() const { return begin_; }
59 Iterator end() const { return end_; }
74template <typename Iterator>
78template <typename Iterator>
87template <typename MultiMap>
92template <typename MultiMap>
102template <typename Container>
114template <typename Container>
122template <typename IntegerType>
127#if __cplusplus < 201703L
128 : public std::iterator<std::input_iterator_tag, IntegerType>
134#if __cplusplus >= 201703L && __cplusplus < 202002L
135 using iterator_category = std::input_iterator_tag;
136 using pointer = IntegerType*;
137 using reference = IntegerType&;
234template <typename IntegerType>
249template <typename IndexT, const IndexT& sentinel, typename Tag>
251#if __cplusplus < 201703L
252 : public std::iterator<std::input_iterator_tag, IndexT>
258#if __cplusplus >= 201703L && __cplusplus < 202002L
259 using iterator_category = std::input_iterator_tag;
Definition iterators.h:103
BeginEndReverseIteratorWrapper(const Container &c)
Definition iterators.h:105
Container::const_reverse_iterator end() const
Definition iterators.h:109
Container::const_reverse_iterator begin() const
Definition iterators.h:106
Definition iterators.h:48
Iterator end() const
Definition iterators.h:59
Iterator begin() const
Definition iterators.h:58
BeginEndWrapper(Iterator begin, Iterator end)
Definition iterators.h:56
bool empty() const
Definition iterators.h:64
BeginEndWrapper()=default
typename std::iterator_traits< Iterator >::value_type value_type
Definition iterators.h:51
Iterator const_iterator
Definition iterators.h:50
size_t size() const
Definition iterators.h:62
ChasingIterator(IndexT index, const IndexT *next)
Definition iterators.h:266
ArcIndexType value_type
Definition iterators.h:257
friend bool operator!=(const ChasingIterator &l, const ChasingIterator &r)
Definition iterators.h:284
IndexT operator*() const
Definition iterators.h:269
ChasingIterator operator++(int)
Definition iterators.h:275
ptrdiff_t difference_type
Definition iterators.h:256
ChasingIterator()
Definition iterators.h:264
friend bool operator==(const ChasingIterator &l, const ChasingIterator &r)
Definition iterators.h:281
ChasingIterator & operator++()
Definition iterators.h:271
Definition iterators.h:130
friend IntegerRangeIterator operator+(IntegerRangeIterator it, difference_type n)
Definition iterators.h:201
bool operator<(const IntegerRangeIterator &other) const
Definition iterators.h:154
ArcIndexType value_type
Definition iterators.h:133
bool operator==(const IntegerRangeIterator &other) const
Definition iterators.h:148
friend IntegerRangeIterator operator+(difference_type n, IntegerRangeIterator it)
Definition iterators.h:206
ptrdiff_t difference_type
Definition iterators.h:132
IntegerRangeIterator()
Definition iterators.h:140
IntegerRangeIterator operator--(int)
Definition iterators.h:188
IntegerRangeIterator & operator--()
Definition iterators.h:183
IntegerRangeIterator & operator+=(difference_type n)
Definition iterators.h:178
IntegerRangeIterator & operator++()
Definition iterators.h:167
bool operator!=(const IntegerRangeIterator &other) const
Definition iterators.h:151
bool operator>=(const IntegerRangeIterator &other) const
Definition iterators.h:163
bool operator>(const IntegerRangeIterator &other) const
Definition iterators.h:157
IntegerRangeIterator(IntegerType value)
Definition iterators.h:142
bool operator<=(const IntegerRangeIterator &other) const
Definition iterators.h:160
IntegerType operator*() const
Definition iterators.h:144
friend difference_type operator-(const IntegerRangeIterator l, const IntegerRangeIterator r)
Definition iterators.h:216
IntegerRangeIterator & operator-=(difference_type n)
Definition iterators.h:194
IntegerType operator[](difference_type n) const
Definition iterators.h:199
friend IntegerRangeIterator operator-(IntegerRangeIterator it, difference_type n)
Definition iterators.h:211
IntegerRangeIterator operator++(int)
Definition iterators.h:172
IntegerRange(IntegerType begin, IntegerType end)
Definition iterators.h:238
BeginEndReverseIteratorWrapper< Container > Reverse(const Container &c)
Definition iterators.h:115
BeginEndWrapper< Iterator > BeginEndRange(Iterator begin, Iterator end)
Definition iterators.h:75
BeginEndWrapper< typename MultiMap::iterator > EqualRange(MultiMap &multi_map, const typename MultiMap::key_type &key)
Definition iterators.h:88