Provides some valuable algorithms that are not part of the C++ 11 STL.
Definition in file algorithm.hpp.
#include <algorithm>
#include <cassert>
#include <cmath>
#include <functional>
#include <numeric>
#include <unordered_set>
#include <utility>
#include <vector>
Go to the source code of this file.
Namespaces | |
genesis | |
Container namespace for all symbols of genesis in order to keep them separate when used as a library. | |
genesis::utils | |
Functions | |
template<class ForwardIt , class T , class Compare = std::less<T>> | |
ForwardIt | binary_find (ForwardIt first, ForwardIt last, const T &value, Compare comp={}) |
Binary search on a sorted/partitioned range, returns an iterator to the element if found. More... | |
template<class C , class T > | |
bool | contains (const C &v, const T &x) |
Returns whether a container object has a certain element. More... | |
template<class C > | |
bool | contains_duplicates (C const &v) |
Return whether a container contains duplicates. More... | |
template<class Container , class UnaryPredicate > | |
void | erase_if (Container &c, UnaryPredicate p) |
Erases all elements from the container that satisfy a given predicate. An element is erased, if the predicate evaluates to true for it. The predicate needs to have a signature similar to (T const&)->bool. More... | |
template<typename T > | |
std::vector< T >::iterator | insert_sorted (std::vector< T > &vec, T const &item) |
Insert into a vector vec , sorted by the value of the item . The vector must already be sorted. More... | |
template<typename T , typename Pred > | |
std::vector< T >::iterator | insert_sorted (std::vector< T > &vec, T const &item, Pred pred) |
Insert into a vector vec , sorted by the value of the item , using a predicate. The vector must already be sorted according to the predicate. More... | |
template<class T > | |
std::pair< T, T > | minmax_value (T const &a, T const &b) |
Returns the lowest and the greatest of the given values, by value. More... | |
template<class T , class Compare > | |
std::pair< T, T > | minmax_value (T const &a, T const &b, Compare comp) |
Returns the lowest and the greatest of the given values, by value. More... | |
template<typename RandomAccessIterator > | |
std::vector< size_t > | sort_indices (RandomAccessIterator first, RandomAccessIterator last) |
Get the indices to the sorted order of the given range. More... | |
template<typename RandomAccessIterator , typename Comparator > | |
std::vector< size_t > | sort_indices (RandomAccessIterator first, RandomAccessIterator last, Comparator comparator) |
Get the indices to the sorted order of the given range. More... | |
template<typename RandomAccessIterator > | |
std::vector< size_t > | stable_sort_indices (RandomAccessIterator first, RandomAccessIterator last) |
Get the indices to the stable sorted order of the given range. More... | |
template<typename RandomAccessIterator , typename Comparator > | |
std::vector< size_t > | stable_sort_indices (RandomAccessIterator first, RandomAccessIterator last, Comparator comparator) |
Get the indices to the stable sorted order of the given range. More... | |