# Miscellaneous C++ Sequence Methods

> The following C++ Sequence methods take a variety of input sequence arguments and produce result sequences or scalar types as described in the table below:

> Sequence<uint8> histogram(T minValue, T maxValue, mco_size_t nIntervals) const | Build a histogram for the object's sequence. Minimal (inclusive) and maximal (exclusive) values for input sequence should be specified as well as the number of intervals (histogram columns). (The number of intervals should not be greater than tile size)
> void sort(std::vector<T> const& elements, std::vector<mco_seq_no_t>& permutation, mco_seq_order_t order) | Sort the sequence elements previously extracted using `get()` and construct a permutation array (of positions) that can be used to access the elements of other sequences (also extracted to arrays)
> void permutate(Sequence<Chars>& result, std::vector<mco_seq_no_t> const& permutation) const | Sort the sequence elements using the permutation produced by `sort()`
> The following group of methods apply a specific operation via function pointer func to the Sequence or to this and the input Sequence as left and right opearnds.
> Sequence<T> apply(unary_function_t func) const | Apply the unary function pointed to by argument func to this Sequence
> Sequence<T> apply(Sequence<T> const& other, binary_function_t func) const; | Apply the binary function pointed to by argument func to this Sequence and other