|
stlab 2.3.0
Modern, modular C++ algorithms, data structures, and concurrency primitives
|
Reverse algorithms for iterators and intrusive forward / bidirectional sequences. More...
#include <algorithm>#include <utility>#include <stlab/config.hpp>#include <stlab/iterator/concepts.hpp>#include <stlab/iterator/set_next.hpp>Go to the source code of this file.
Functions | |
| template<STLAB_CONCEPT(FORWARD_NODE_ITERATOR) I> | |
| auto | stlab::unsafe::reverse_append (I first, I last, I end) -> I |
| Reverses the range [first, last) and appends end. Returns the beginning of the reversed range such that [result, end) is a valid range. | |
| template<typename R, typename I> | |
| auto | stlab::unsafe::reverse_append (R &range, I end) -> I |
| Reverses range and appends end. Returns the beginning of the reversed range such that [result, end) is a valid range. | |
| template<typename I> | |
| auto | stlab::unsafe::reverse_nodes (I first, I last) -> I |
| Reverses the range [first, last) and returns the beginning of the reversed range such that [result, last) is a valid range. | |
| template<typename R> | |
| auto | stlab::unsafe::reverse_nodes (R &range) -> typename R::iterator |
| Reverses the range range and returns the beginning of the reversed range such that [result, last) is a valid range. | |
| template<class BidirectionalRange> | |
| void | stlab::reverse (BidirectionalRange &range) |
| Range-based reverse, will be deprecated in C++20 in favor of std::ranges::reverse. | |
| template<class BidirectionalRange, class OutputIterator> | |
| void | stlab::reverse_copy (BidirectionalRange &range, OutputIterator result) |
| Range-based reverse_copy algorithm, will be deprecated in C++20 in favor of std::ranges::reverse_copy. | |
| template<class BidirectionalRange, class OutputIterator> | |
| void | stlab::reverse_copy (const BidirectionalRange &range, OutputIterator result) |
| Range-based reverse_copy algorithm, will be deprecated in C++20 in favor of std::ranges::reverse_copy. | |
| template<typename I> | |
| auto | stlab::reverse_until (I f, I m, I l) -> std::pair< I, I > |
| Reverses the range [f, l) until m is reached. Returns a range [a, b) of the un-reversed subrange such that either a == m or b == m. | |
Reverse algorithms for iterators and intrusive forward / bidirectional sequences.
Algorithms for reversing node ranges and iterator sequences, including helpers that splice intrusive lists via stlab/iterator/set_next.hpp.