Listing 1: The header <algorithm>
// algorithm standard header #ifndef _ALGORITHM_ #define _ALGORITHM_ ///namespace std { template<class InIt, class Fun> Fun for_each(InIt first, InIt last, Fun op); template<class InIt, class OutIt> OutIt copy(InIt first, InIt last, OutIt x); template<class BidIt1, class BidIt2> BidIt2 copy_backward(BidIt1 first, BidIt1 last, BidIt2 x); template<class InIt1, class InIt2> bool equal(InIt1 first, InIt1 last, InIt2 x); template<class InIt1, class InIt2, class Pred> bool equal(InIt1 first, InIt1 last, InIt2 x, Pred pr); template<class FwdIt, class T> void fill(FwdIt first, FwdIt last, const T& x); template<class OutIt, class Size, class T> void fill_n(OutIt first, Size n, const T& x); template<class InIt1, class InIt2> bool lexicographical_compare(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2); template<class InIt1, class InIt2, class Pred> bool lexicographical_compare(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, Pred pr); template<class T> const T& max(const T& x, const T& y); template<class T, class Pred> const T& max(const T& x, const T& y, Pred pr); template<class T> const T& min(const T& x, const T& y); template<class T, class Pred> const T& min(const T& x, const T& y, Pred pr); template<class InIt1, class InIt2> pair<InIt1, InIt2> mismatch(InIt1 first, InIt1 last, InIt2 x); template<class InIt1, class InIt2, class Pred> pair<InIt1, InIt2> mismatch(InIt1 first, InIt1 last, InIt2 x, Pred pr); template<class T> void swap(T& x, T& y); template<class InIt, class T> InIt find(InIt first, InIt last, const T& val); template<class InIt, class Pred> InIt find_if(InIt first, InIt last, Pred pr); template<class FwdIt> FwdIt adjacent_find(FwdIt first, FwdIt last); template<class FwdIt, class Pred> FwdIt adjacent_find(FwdIt first, FwdIt last, Pred pr); template<class InIt, class T> iterator_traits<InIt>::distance_type count(InIt first, InIt last, const T& val); template<class InIt, class Pred> iterator_traits<InIt>::distance_type count_if(InIt first, InIt last, Pred pr); template<class FwdIt1, class FwdIt2> FwdIt1 search(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt2 last2); template<class FwdIt1, class FwdIt2, class Pred> FwdIt1 search(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt2 last2, Pred pr); template<class FwdIt1, class FwdIt2> FwdIt1 find_end(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt2 last2); template<class FwdIt1, class FwdIt2, class Pred> FwdIt1 find_end(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt2 last2, Pred pr); template<class FwdIt1, class FwdIt2> FwdIt1 find_first_of(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt2 last2); template<class FwdIt1, class FwdIt2, class Pred> FwdIt1 find_first_of(FwdIt1 first1, FwdIt1 last1, FwdIt2 first2, FwdIt2 last2, Pred pr); template<class FwdIt1, class FwdIt2> void iter_swap(FwdIt1 x, FwdIt2 y); template<class FwdIt1, class FwdIt2> FwdIt2 swap_ranges(FwdIt1 first, FwdIt1 last, FwdIt2 x); template<class InIt, class OutIt, class Unop> OutIt transform(InIt first, InIt last, OutIt x, Unop unop); template<class InIt1, class InIt2, class OutIt, class Bop> OutIt transform(InIt1 first1, InIt1 last1, InIt2 first2, OutIt x, Bop op); template<class FwdIt, class T> void replace(FwdIt first, FwdIt last, const T& valo, const T& valn); template<class FwdIt, class Pred, class T> void replace_if(FwdIt first, FwdIt last, Pred pr, const T& val); template<class InIt, class OutIt, class T> OutIt replace_copy(InIt first, InIt last, OutIt x, const T& valo, const T& valn); template<class InIt, class OutIt, class Pred, class T> OutIt replace_copy_if(InIt first, InIt last, OutIt x, Pred pr, const T& val); template<class FwdIt, class Fun> void generate(FwdIt first, FwdIt last, Fun fun); template<class OutIt, class Diff, class Fun> void generate_n(OutIt first, Diff n, Fun fun); template<class FwdIt, class T> FwdIt remove(FwdIt first, FwdIt last, const T& val); template<class FwdIt, class Pred> FwdIt remove_if(FwdIt first, FwdIt last, Pred pr); template<class InIt, class OutIt, class T> OutIt remove_copy(InIt first, InIt last, OutIt x, const T& val); template<class InIt, class OutIt, class Pred> OutIt remove_copy_if(InIt first, InIt last, OutIt x, Pred pr); template<class FwdIt> FwdIt unique(FwdIt first, FwdIt last); template<class FwdIt, class Pred> FwdIt unique(FwdIt first, FwdIt last, Pred pr); template<class InIt, class OutIt> OutIt unique_copy(InIt first, InIt last, OutIt x); template<class InIt, class OutIt, class Pred> OutIt unique_copy(InIt first, InIt last, OutIt x, Pred pr); template<class BidIt> void reverse(BidIt first, BidIt last); template<class BidIt, class OutIt> OutIt reverse_copy(BidIt first, BidIt last, OutIt x); template<class FwdIt> void rotate(FwdIt first, FwdIt mid, FwdIt last); template<class FwdIt, class OutIt> OutIt rotate_copy(FwdIt first, FwdIt mid, FwdIt last, OutIt x); template<class RanIt> void random_shuffle(RanIt first, RanIt last); template<class RanIt, class Ranf> void random_shuffle(RanIt first, RanIt last, Ranf& ranf); template<class BidIt, class Pred> BidIt partition(BidIt first, BidIt last, Pred pr); template<class FwdIt, class Pred> FwdIt stable_partition(FwdIt first, FwdIt last, Pred pr); template<class RanIt> void sort(RanIt first, RanIt last); template<class RanIt> void insertion_sort(RanIt first, RanIt last); template<class RanIt, class Pred> void sort(RanIt first, RanIt last, Pred pr); template<class RanIt, class Pred> void insertion_sort(RanIt first, RanIt last, Pred pr); template<class BidIt> void stable_sort(BidIt first, BidIt last); template<class RanIt> void partial_sort(RanIt first, RanIt m, RanIt last); template<class RanIt, class Pred> void partial_sort(RanIt first, RanIt m, RanIt last, Pred pr); template<class InIt, class RanIt> RanIt partial_sort_copy(InIt first1, InIt last1, RanIt first2, RanIt last2); template<class InIt, class RanIt, class Pred> RanIt partial_sort_copy(InIt first1, InIt last1, RanIt first2, RanIt last2, Pred pr); template<class RanIt> void nth_element(RanIt first, RanIt nth, RanIt last); template<class RanIt, class Pred> void nth_element(RanIt first, RanIt nth, RanIt last, Pred pr); template<class FwdIt, class T> FwdIt lower_bound(FwdIt first, FwdIt last, const T& val); template<class FwdIt, class T, class Pred> FwdIt lower_bound(FwdIt first, FwdIt last, const T& val, Pred pr); template<class FwdIt, class T> FwdIt upper_bound(FwdIt first, FwdIt last, const T& val); template<class FwdIt, class T, class Pred> FwdIt upper_bound(FwdIt first, FwdIt last, const T& val, Pred pr); template<class FwdIt, class T> pair<FwdIt, FwdIt> equal_range(FwdIt first, FwdIt last, const T& val); template<class FwdIt, class T, class Pred> pair<FwdIt, FwdIt> equal_range(FwdIt first, FwdIt last, const T& val, Pred pr); template<class FwdIt, class T> bool binary_search(FwdIt first, FwdIt last, const T& val); template<class FwdIt, class T, class Pred> bool binary_search(FwdIt first, FwdIt last, const T& val, Pred pr); template<class InIt1, class InIt2, class OutIt> OutIt merge(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x); template<class InIt1, class InIt2, class OutIt, class Pred> OutIt merge(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x, Pred pr); template<class BidIt> void inplace_merge(BidIt first, BidIt mid, BidIt last); template<class BidIt, class Pred> void inplace_merge(BidIt first, BidIt mid, BidIt last, Pred pr); template<class InIt1, class InIt2> bool includes(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2); template<class InIt1, class InIt2, class Pred> bool includes(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, Pred pr); template<class InIt1, class InIt2, class OutIt> OutIt set_union(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x); template<class InIt1, class InIt2, class OutIt, class Pred> OutIt set_union(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x, Pred pr); template<class InIt1, class InIt2, class OutIt> OutIt set_intersection(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x); template<class InIt1, class InIt2, class OutIt, class Pred> OutIt set_intersection(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x, Pred pr); template<class InIt1, class InIt2, class OutIt> OutIt set_difference(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x); template<class InIt1, class InIt2, class OutIt, class Pred> OutIt set_difference(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x, Pred pr); template<class InIt1, class InIt2, class OutIt> OutIt set_symmetric_difference(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x); template<class InIt1, class InIt2, class OutIt, class Pred> OutIt set_symmetric_difference(InIt1 first1, InIt1 last1, InIt2 first2, InIt2 last2, OutIt x, Pred pr); template<class RanIt> void push_heap(RanIt first, RanIt last); template<class RanIt> void pop_heap(RanIt first, RanIt last); template<class RanIt, class Pred> void pop_heap(RanIt first, RanIt last, Pred pr); template<class RanIt> void make_heap(RanIt first, RanIt last); template<class RanIt> void sort_heap(RanIt first, RanIt last); template<class RanIt, class Pred> void sort_heap(RanIt first, RanIt last, Pred pr); template<class FwdIt> FwdIt max_element(FwdIt first, FwdIt last); template<class FwdIt, class Pred> FwdIt max_element(FwdIt first, FwdIt last, Pred pr); template<class FwdIt> FwdIt min_element(FwdIt first, FwdIt last); template<class FwdIt, class Pred> FwdIt min_element(FwdIt first, FwdIt last, Pred pr); template<class BidIt> bool next_permutation(BidIt first, BidIt last); template<class BidIt, class Pred> bool next_permutation(BidIt first, BidIt last, Pred pr); template<class BidIt> bool prev_permutation(BidIt first, BidIt last); template<class BidIt, class Pred> bool prev_permutation(BidIt first, BidIt last, Pred pr) ///}; // end of namespace std #endif /* _ALGORITHM_ */ /* End of File */