#include <algorithm>
#include <utility>
#include "pw_containers/internal/algorithm_internal.h"
Go to the source code of this file.
Namespaces | |
namespace | pw |
Provides basic helpers for reading and writing UTF-8 encoded strings. | |
namespace | pw::containers |
Functions | |
template<typename C , typename Pred > | |
bool | pw::containers::AllOf (const C &c, Pred &&pred) |
template<typename C , typename Pred > | |
bool | pw::containers::AnyOf (const C &c, Pred &&pred) |
template<typename C , typename Pred > | |
bool | pw::containers::NoneOf (const C &c, Pred &&pred) |
template<typename C , typename Function > | |
std::decay_t< Function > | pw::containers::ForEach (C &&c, Function &&f) |
template<typename C , typename T > | |
internal_algorithm::ContainerIter< C > | pw::containers::Find (C &c, T &&value) |
template<typename C , typename Pred > | |
internal_algorithm::ContainerIter< C > | pw::containers::FindIf (C &c, Pred &&pred) |
template<typename C , typename Pred > | |
internal_algorithm::ContainerIter< C > | pw::containers::FindIfNot (C &c, Pred &&pred) |
template<typename Sequence1 , typename Sequence2 > | |
internal_algorithm::ContainerIter< Sequence1 > | pw::containers::FindEnd (Sequence1 &sequence, Sequence2 &subsequence) |
template<typename Sequence1 , typename Sequence2 , typename BinaryPredicate > | |
internal_algorithm::ContainerIter< Sequence1 > | pw::containers::FindEnd (Sequence1 &sequence, Sequence2 &subsequence, BinaryPredicate &&pred) |
template<typename C1 , typename C2 > | |
internal_algorithm::ContainerIter< C1 > | pw::containers::FindFirstOf (C1 &container, C2 &options) |
template<typename C1 , typename C2 , typename BinaryPredicate > | |
internal_algorithm::ContainerIter< C1 > | pw::containers::FindFirstOf (C1 &container, C2 &options, BinaryPredicate &&pred) |
template<typename Sequence > | |
internal_algorithm::ContainerIter< Sequence > | pw::containers::AdjacentFind (Sequence &sequence) |
template<typename Sequence , typename BinaryPredicate > | |
internal_algorithm::ContainerIter< Sequence > | pw::containers::AdjacentFind (Sequence &sequence, BinaryPredicate &&pred) |
template<typename C , typename T > | |
internal_algorithm::ContainerDifferenceType< const C > | pw::containers::Count (const C &c, T &&value) |
template<typename C , typename Pred > | |
internal_algorithm::ContainerDifferenceType< const C > | pw::containers::CountIf (const C &c, Pred &&pred) |
template<typename C1 , typename C2 > | |
internal_algorithm::ContainerIterPairType< C1, C2 > | pw::containers::Mismatch (C1 &c1, C2 &c2) |
template<typename C1 , typename C2 , typename BinaryPredicate > | |
internal_algorithm::ContainerIterPairType< C1, C2 > | pw::containers::Mismatch (C1 &c1, C2 &c2, BinaryPredicate pred) |
template<typename C1 , typename C2 > | |
bool | pw::containers::Equal (const C1 &c1, const C2 &c2) |
template<typename C1 , typename C2 , typename BinaryPredicate > | |
bool | pw::containers::Equal (const C1 &c1, const C2 &c2, BinaryPredicate &&pred) |
template<typename C1 , typename C2 > | |
bool | pw::containers::IsPermutation (const C1 &c1, const C2 &c2) |
template<typename C1 , typename C2 , typename BinaryPredicate > | |
bool | pw::containers::IsPermutation (const C1 &c1, const C2 &c2, BinaryPredicate &&pred) |
template<typename Sequence1 , typename Sequence2 > | |
internal_algorithm::ContainerIter< Sequence1 > | pw::containers::Search (Sequence1 &sequence, Sequence2 &subsequence) |
template<typename Sequence1 , typename Sequence2 , typename BinaryPredicate > | |
internal_algorithm::ContainerIter< Sequence1 > | pw::containers::Search (Sequence1 &sequence, Sequence2 &subsequence, BinaryPredicate &&pred) |
template<typename Sequence , typename Size , typename T > | |
internal_algorithm::ContainerIter< Sequence > | pw::containers::SearchN (Sequence &sequence, Size count, T &&value) |
template<typename Sequence , typename Size , typename T , typename BinaryPredicate > | |
internal_algorithm::ContainerIter< Sequence > | pw::containers::SearchN (Sequence &sequence, Size count, T &&value, BinaryPredicate &&pred) |
This header file provides container-based versions of algorithmic functions within the C++ standard library, based on pw_containers. The following standard library sets of functions are covered within this file:
The standard library functions operate on iterator ranges; the functions within this API operate on containers, though many return iterator ranges.
All functions within this API are CamelCase instead of their std:: snake_case counterparts. Calls such as pw::containers::Foo(container, ...)
are equivalent to std::
functions such as std::foo(std::begin(cont), std::end(cont), ...)
. Functions that act on iterators but not conceptually on iterator ranges (e.g. std::iter_swap
)