stl_algo.h File Reference

#include <bits/stl_heap.h>
#include <bits/stl_tempbuf.h>
#include <debug/debug.h>

Go to the source code of this file.

Namespaces

namespace  std

Defines

#define _ALGO_H   1

Enumerations

enum  { std::_S_threshold = 16 }
enum  { std::_S_chunk_size = 7 }

Functions

template<typename _Tp>
const _Tp & std::__median (const _Tp &__a, const _Tp &__b, const _Tp &__c)
 Find the median of three values.
template<typename _Tp, typename _Compare>
const _Tp & std::__median (const _Tp &__a, const _Tp &__b, const _Tp &__c, _Compare __comp)
 Find the median of three values using a predicate for comparison.
template<typename _InputIterator, typename _Function>
_Function std::for_each (_InputIterator __first, _InputIterator __last, _Function __f)
 Apply a function to every element of a sequence.
template<typename _InputIterator, typename _Tp>
_InputIterator std::__find (_InputIterator __first, _InputIterator __last, const _Tp &__val, input_iterator_tag)
template<typename _InputIterator, typename _Predicate>
_InputIterator std::__find_if (_InputIterator __first, _InputIterator __last, _Predicate __pred, input_iterator_tag)
template<typename _RandomAccessIterator, typename _Tp>
_RandomAccessIterator std::__find (_RandomAccessIterator __first, _RandomAccessIterator __last, const _Tp &__val, random_access_iterator_tag)
template<typename _RandomAccessIterator, typename _Predicate>
_RandomAccessIterator std::__find_if (_RandomAccessIterator __first, _RandomAccessIterator __last, _Predicate __pred, random_access_iterator_tag)
template<typename _InputIterator, typename _Tp>
_InputIterator std::find (_InputIterator __first, _InputIterator __last, const _Tp &__val)
 Find the first occurrence of a value in a sequence.
template<typename _InputIterator, typename _Predicate>
_InputIterator std::find_if (_InputIterator __first, _InputIterator __last, _Predicate __pred)
 Find the first element in a sequence for which a predicate is true.
template<typename _ForwardIterator>
_ForwardIterator std::adjacent_find (_ForwardIterator __first, _ForwardIterator __last)
 Find two adjacent values in a sequence that are equal.
template<typename _ForwardIterator, typename _BinaryPredicate>
_ForwardIterator std::adjacent_find (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred)
 Find two adjacent values in a sequence using a predicate.
template<typename _InputIterator, typename _Tp>
iterator_traits< _InputIterator
>::difference_type 
std::count (_InputIterator __first, _InputIterator __last, const _Tp &__value)
 Count the number of copies of a value in a sequence.
template<typename _InputIterator, typename _Predicate>
iterator_traits< _InputIterator
>::difference_type 
std::count_if (_InputIterator __first, _InputIterator __last, _Predicate __pred)
 Count the elements of a sequence for which a predicate is true.
template<typename _ForwardIterator1, typename _ForwardIterator2>
_ForwardIterator1 std::search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2)
 Search a sequence for a matching sub-sequence.
template<typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate>
_ForwardIterator1 std::search (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __predicate)
 Search a sequence for a matching sub-sequence using a predicate.
template<typename _ForwardIterator, typename _Integer, typename _Tp>
_ForwardIterator std::__search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp &__val, std::forward_iterator_tag)
template<typename _RandomAccessIter, typename _Integer, typename _Tp>
_RandomAccessIter std::__search_n (_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp &__val, std::random_access_iterator_tag)
template<typename _ForwardIterator, typename _Integer, typename _Tp>
_ForwardIterator std::search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp &__val)
 Search a sequence for a number of consecutive values.
template<typename _ForwardIterator, typename _Integer, typename _Tp, typename _BinaryPredicate>
_ForwardIterator std::__search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp &__val, _BinaryPredicate __binary_pred, std::forward_iterator_tag)
template<typename _RandomAccessIter, typename _Integer, typename _Tp, typename _BinaryPredicate>
_RandomAccessIter std::__search_n (_RandomAccessIter __first, _RandomAccessIter __last, _Integer __count, const _Tp &__val, _BinaryPredicate __binary_pred, std::random_access_iterator_tag)
template<typename _ForwardIterator, typename _Integer, typename _Tp, typename _BinaryPredicate>
_ForwardIterator std::search_n (_ForwardIterator __first, _ForwardIterator __last, _Integer __count, const _Tp &__val, _BinaryPredicate __binary_pred)
 Search a sequence for a number of consecutive values using a predicate.
template<typename _ForwardIterator1, typename _ForwardIterator2>
_ForwardIterator2 std::swap_ranges (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2)
 Swap the elements of two sequences.
template<typename _InputIterator, typename _OutputIterator, typename _UnaryOperation>
_OutputIterator std::transform (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _UnaryOperation __unary_op)
 Perform an operation on a sequence.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _BinaryOperation>
_OutputIterator std::transform (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _OutputIterator __result, _BinaryOperation __binary_op)
 Perform an operation on corresponding elements of two sequences.
template<typename _ForwardIterator, typename _Tp>
void std::replace (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__old_value, const _Tp &__new_value)
 Replace each occurrence of one value in a sequence with another value.
template<typename _ForwardIterator, typename _Predicate, typename _Tp>
void std::replace_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, const _Tp &__new_value)
 Replace each value in a sequence for which a predicate returns true with another value.
template<typename _InputIterator, typename _OutputIterator, typename _Tp>
_OutputIterator std::replace_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp &__old_value, const _Tp &__new_value)
 Copy a sequence, replacing each element of one value with another value.
template<typename _InputIterator, typename _OutputIterator, typename _Predicate, typename _Tp>
_OutputIterator std::replace_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred, const _Tp &__new_value)
 Copy a sequence, replacing each value for which a predicate returns true with another value.
template<typename _ForwardIterator, typename _Generator>
void std::generate (_ForwardIterator __first, _ForwardIterator __last, _Generator __gen)
 Assign the result of a function object to each value in a sequence.
template<typename _OutputIterator, typename _Size, typename _Generator>
_OutputIterator std::generate_n (_OutputIterator __first, _Size __n, _Generator __gen)
 Assign the result of a function object to each value in a sequence.
template<typename _InputIterator, typename _OutputIterator, typename _Tp>
_OutputIterator std::remove_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, const _Tp &__value)
 Copy a sequence, removing elements of a given value.
template<typename _InputIterator, typename _OutputIterator, typename _Predicate>
_OutputIterator std::remove_copy_if (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _Predicate __pred)
 Copy a sequence, removing elements for which a predicate is true.
template<typename _ForwardIterator, typename _Tp>
_ForwardIterator std::remove (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__value)
 Remove elements from a sequence.
template<typename _ForwardIterator, typename _Predicate>
_ForwardIterator std::remove_if (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
 Remove elements from a sequence using a predicate.
template<typename _InputIterator, typename _OutputIterator>
_OutputIterator std::__unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, output_iterator_tag)
template<typename _InputIterator, typename _ForwardIterator>
_ForwardIterator std::__unique_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, forward_iterator_tag)
template<typename _InputIterator, typename _OutputIterator, typename _BinaryPredicate>
_OutputIterator std::__unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred, output_iterator_tag)
template<typename _InputIterator, typename _ForwardIterator, typename _BinaryPredicate>
_ForwardIterator std::__unique_copy (_InputIterator __first, _InputIterator __last, _ForwardIterator __result, _BinaryPredicate __binary_pred, forward_iterator_tag)
template<typename _InputIterator, typename _OutputIterator>
_OutputIterator std::unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result)
 Copy a sequence, removing consecutive duplicate values.
template<typename _InputIterator, typename _OutputIterator, typename _BinaryPredicate>
_OutputIterator std::unique_copy (_InputIterator __first, _InputIterator __last, _OutputIterator __result, _BinaryPredicate __binary_pred)
 Copy a sequence, removing consecutive values using a predicate.
template<typename _ForwardIterator>
_ForwardIterator std::unique (_ForwardIterator __first, _ForwardIterator __last)
 Remove consecutive duplicate values from a sequence.
template<typename _ForwardIterator, typename _BinaryPredicate>
_ForwardIterator std::unique (_ForwardIterator __first, _ForwardIterator __last, _BinaryPredicate __binary_pred)
 Remove consecutive values from a sequence using a predicate.
template<typename _BidirectionalIterator>
void std::__reverse (_BidirectionalIterator __first, _BidirectionalIterator __last, bidirectional_iterator_tag)
template<typename _RandomAccessIterator>
void std::__reverse (_RandomAccessIterator __first, _RandomAccessIterator __last, random_access_iterator_tag)
template<typename _BidirectionalIterator>
void std::reverse (_BidirectionalIterator __first, _BidirectionalIterator __last)
 Reverse a sequence.
template<typename _BidirectionalIterator, typename _OutputIterator>
_OutputIterator std::reverse_copy (_BidirectionalIterator __first, _BidirectionalIterator __last, _OutputIterator __result)
 Copy a sequence, reversing its elements.
template<typename _EuclideanRingElement>
_EuclideanRingElement std::__gcd (_EuclideanRingElement __m, _EuclideanRingElement __n)
template<typename _ForwardIterator>
void std::__rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, forward_iterator_tag)
template<typename _BidirectionalIterator>
void std::__rotate (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, bidirectional_iterator_tag)
template<typename _RandomAccessIterator>
void std::__rotate (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, random_access_iterator_tag)
template<typename _ForwardIterator>
void std::rotate (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last)
 Rotate the elements of a sequence.
template<typename _ForwardIterator, typename _OutputIterator>
_OutputIterator std::rotate_copy (_ForwardIterator __first, _ForwardIterator __middle, _ForwardIterator __last, _OutputIterator __result)
 Copy a sequence, rotating its elements.
template<typename _RandomAccessIterator>
void std::random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last)
 Randomly shuffle the elements of a sequence.
template<typename _RandomAccessIterator, typename _RandomNumberGenerator>
void std::random_shuffle (_RandomAccessIterator __first, _RandomAccessIterator __last, _RandomNumberGenerator &__rand)
 Shuffle the elements of a sequence using a random number generator.
template<typename _ForwardIterator, typename _Predicate>
_ForwardIterator std::__partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, forward_iterator_tag)
template<typename _BidirectionalIterator, typename _Predicate>
_BidirectionalIterator std::__partition (_BidirectionalIterator __first, _BidirectionalIterator __last, _Predicate __pred, bidirectional_iterator_tag)
template<typename _ForwardIterator, typename _Predicate>
_ForwardIterator std::partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
 Move elements for which a predicate is true to the beginning of a sequence.
template<typename _ForwardIterator, typename _Predicate, typename _Distance>
_ForwardIterator std::__inplace_stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len)
template<typename _ForwardIterator, typename _Pointer, typename _Predicate, typename _Distance>
_ForwardIterator std::__stable_partition_adaptive (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred, _Distance __len, _Pointer __buffer, _Distance __buffer_size)
template<typename _ForwardIterator, typename _Predicate>
_ForwardIterator std::stable_partition (_ForwardIterator __first, _ForwardIterator __last, _Predicate __pred)
 Move elements for which a predicate is true to the beginning of a sequence, preserving relative ordering.
template<typename _RandomAccessIterator, typename _Tp>
_RandomAccessIterator std::__unguarded_partition (_RandomAccessIterator __first, _RandomAccessIterator __last, _Tp __pivot)
template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
_RandomAccessIterator std::__unguarded_partition (_RandomAccessIterator __first, _RandomAccessIterator __last, _Tp __pivot, _Compare __comp)
template<typename _RandomAccessIterator, typename _Tp>
void std::__unguarded_linear_insert (_RandomAccessIterator __last, _Tp __val)
template<typename _RandomAccessIterator, typename _Tp, typename _Compare>
void std::__unguarded_linear_insert (_RandomAccessIterator __last, _Tp __val, _Compare __comp)
template<typename _RandomAccessIterator>
void std::__insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
template<typename _RandomAccessIterator, typename _Compare>
void std::__insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
template<typename _RandomAccessIterator>
void std::__unguarded_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
template<typename _RandomAccessIterator, typename _Compare>
void std::__unguarded_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
template<typename _RandomAccessIterator>
void std::__final_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
template<typename _RandomAccessIterator, typename _Compare>
void std::__final_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
template<typename _Size>
_Size std::__lg (_Size __n)
template<typename _RandomAccessIterator>
void std::partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last)
 Sort the smallest elements of a sequence.
template<typename _RandomAccessIterator, typename _Compare>
void std::partial_sort (_RandomAccessIterator __first, _RandomAccessIterator __middle, _RandomAccessIterator __last, _Compare __comp)
 Sort the smallest elements of a sequence using a predicate for comparison.
template<typename _InputIterator, typename _RandomAccessIterator>
_RandomAccessIterator std::partial_sort_copy (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last)
 Copy the smallest elements of a sequence.
template<typename _InputIterator, typename _RandomAccessIterator, typename _Compare>
_RandomAccessIterator std::partial_sort_copy (_InputIterator __first, _InputIterator __last, _RandomAccessIterator __result_first, _RandomAccessIterator __result_last, _Compare __comp)
 Copy the smallest elements of a sequence using a predicate for comparison.
template<typename _RandomAccessIterator, typename _Size>
void std::__introsort_loop (_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit)
template<typename _RandomAccessIterator, typename _Size, typename _Compare>
void std::__introsort_loop (_RandomAccessIterator __first, _RandomAccessIterator __last, _Size __depth_limit, _Compare __comp)
template<typename _RandomAccessIterator>
void std::sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
 Sort the elements of a sequence.
template<typename _RandomAccessIterator, typename _Compare>
void std::sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
 Sort the elements of a sequence using a predicate for comparison.
template<typename _ForwardIterator, typename _Tp>
_ForwardIterator std::lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
 Finds the first position in which val could be inserted without changing the ordering.
template<typename _ForwardIterator, typename _Tp, typename _Compare>
_ForwardIterator std::lower_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare __comp)
 Finds the first position in which val could be inserted without changing the ordering.
template<typename _ForwardIterator, typename _Tp>
_ForwardIterator std::upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
 Finds the last position in which val could be inserted without changing the ordering.
template<typename _ForwardIterator, typename _Tp, typename _Compare>
_ForwardIterator std::upper_bound (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare __comp)
 Finds the last position in which val could be inserted without changing the ordering.
template<typename _BidirectionalIterator, typename _Distance>
void std::__merge_without_buffer (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2)
template<typename _BidirectionalIterator, typename _Distance, typename _Compare>
void std::__merge_without_buffer (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Compare __comp)
template<typename _RandomAccessIterator>
void std::__inplace_stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
template<typename _RandomAccessIterator, typename _Compare>
void std::__inplace_stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
_OutputIterator std::merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
 Merges two sorted ranges.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare>
_OutputIterator std::merge (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
 Merges two sorted ranges.
template<typename _RandomAccessIterator1, typename _RandomAccessIterator2, typename _Distance>
void std::__merge_sort_loop (_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size)
template<typename _RandomAccessIterator1, typename _RandomAccessIterator2, typename _Distance, typename _Compare>
void std::__merge_sort_loop (_RandomAccessIterator1 __first, _RandomAccessIterator1 __last, _RandomAccessIterator2 __result, _Distance __step_size, _Compare __comp)
template<typename _RandomAccessIterator, typename _Distance>
void std::__chunk_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size)
template<typename _RandomAccessIterator, typename _Distance, typename _Compare>
void std::__chunk_insertion_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Distance __chunk_size, _Compare __comp)
template<typename _RandomAccessIterator, typename _Pointer>
void std::__merge_sort_with_buffer (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer)
template<typename _RandomAccessIterator, typename _Pointer, typename _Compare>
void std::__merge_sort_with_buffer (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Compare __comp)
template<typename _BidirectionalIterator1, typename _BidirectionalIterator2, typename _BidirectionalIterator3>
_BidirectionalIterator3 std::__merge_backward (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result)
template<typename _BidirectionalIterator1, typename _BidirectionalIterator2, typename _BidirectionalIterator3, typename _Compare>
_BidirectionalIterator3 std::__merge_backward (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, _BidirectionalIterator3 __result, _Compare __comp)
template<typename _BidirectionalIterator1, typename _BidirectionalIterator2, typename _Distance>
_BidirectionalIterator1 std::__rotate_adaptive (_BidirectionalIterator1 __first, _BidirectionalIterator1 __middle, _BidirectionalIterator1 __last, _Distance __len1, _Distance __len2, _BidirectionalIterator2 __buffer, _Distance __buffer_size)
template<typename _BidirectionalIterator, typename _Distance, typename _Pointer>
void std::__merge_adaptive (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size)
template<typename _BidirectionalIterator, typename _Distance, typename _Pointer, typename _Compare>
void std::__merge_adaptive (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Distance __len1, _Distance __len2, _Pointer __buffer, _Distance __buffer_size, _Compare __comp)
template<typename _BidirectionalIterator>
void std::inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last)
 Merges two sorted ranges in place.
template<typename _BidirectionalIterator, typename _Compare>
void std::inplace_merge (_BidirectionalIterator __first, _BidirectionalIterator __middle, _BidirectionalIterator __last, _Compare __comp)
 Merges two sorted ranges in place.
template<typename _RandomAccessIterator, typename _Pointer, typename _Distance>
void std::__stable_sort_adaptive (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size)
template<typename _RandomAccessIterator, typename _Pointer, typename _Distance, typename _Compare>
void std::__stable_sort_adaptive (_RandomAccessIterator __first, _RandomAccessIterator __last, _Pointer __buffer, _Distance __buffer_size, _Compare __comp)
template<typename _RandomAccessIterator>
void std::stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last)
 Sort the elements of a sequence, preserving the relative order of equivalent elements.
template<typename _RandomAccessIterator, typename _Compare>
void std::stable_sort (_RandomAccessIterator __first, _RandomAccessIterator __last, _Compare __comp)
 Sort the elements of a sequence using a predicate for comparison, preserving the relative order of equivalent elements.
template<typename _RandomAccessIterator>
void std::nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last)
 Sort a sequence just enough to find a particular position.
template<typename _RandomAccessIterator, typename _Compare>
void std::nth_element (_RandomAccessIterator __first, _RandomAccessIterator __nth, _RandomAccessIterator __last, _Compare __comp)
 Sort a sequence just enough to find a particular position using a predicate for comparison.
template<typename _ForwardIterator, typename _Tp>
pair< _ForwardIterator, _ForwardIterator > std::equal_range (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
 Finds the largest subrange in which val could be inserted at any place in it without changing the ordering.
template<typename _ForwardIterator, typename _Tp, typename _Compare>
pair< _ForwardIterator, _ForwardIterator > std::equal_range (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare __comp)
 Finds the largest subrange in which val could be inserted at any place in it without changing the ordering.
template<typename _ForwardIterator, typename _Tp>
bool std::binary_search (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val)
 Determines whether an element exists in a range.
template<typename _ForwardIterator, typename _Tp, typename _Compare>
bool std::binary_search (_ForwardIterator __first, _ForwardIterator __last, const _Tp &__val, _Compare __comp)
 Determines whether an element exists in a range.
template<typename _InputIterator1, typename _InputIterator2>
bool std::includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2)
 Determines whether all elements of a sequence exists in a range.
template<typename _InputIterator1, typename _InputIterator2, typename _Compare>
bool std::includes (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _Compare __comp)
 Determines whether all elements of a sequence exists in a range using comparison.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
_OutputIterator std::set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
 Return the union of two sorted ranges.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare>
_OutputIterator std::set_union (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
 Return the union of two sorted ranges using a comparison functor.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
_OutputIterator std::set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
 Return the intersection of two sorted ranges.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare>
_OutputIterator std::set_intersection (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
 Return the intersection of two sorted ranges using comparison functor.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
_OutputIterator std::set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
 Return the difference of two sorted ranges.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare>
_OutputIterator std::set_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
 Return the difference of two sorted ranges using comparison functor.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator>
_OutputIterator std::set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result)
 Return the symmetric difference of two sorted ranges.
template<typename _InputIterator1, typename _InputIterator2, typename _OutputIterator, typename _Compare>
_OutputIterator std::set_symmetric_difference (_InputIterator1 __first1, _InputIterator1 __last1, _InputIterator2 __first2, _InputIterator2 __last2, _OutputIterator __result, _Compare __comp)
 Return the symmetric difference of two sorted ranges using comparison functor.
template<typename _ForwardIterator>
_ForwardIterator std::max_element (_ForwardIterator __first, _ForwardIterator __last)
 Return the maximum element in a range.
template<typename _ForwardIterator, typename _Compare>
_ForwardIterator std::max_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
 Return the maximum element in a range using comparison functor.
template<typename _ForwardIterator>
_ForwardIterator std::min_element (_ForwardIterator __first, _ForwardIterator __last)
 Return the minimum element in a range.
template<typename _ForwardIterator, typename _Compare>
_ForwardIterator std::min_element (_ForwardIterator __first, _ForwardIterator __last, _Compare __comp)
 Return the minimum element in a range using comparison functor.
template<typename _BidirectionalIterator>
bool std::next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
 Permute range into the next "dictionary" ordering.
template<typename _BidirectionalIterator, typename _Compare>
bool std::next_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
 Permute range into the next "dictionary" ordering using comparison functor.
template<typename _BidirectionalIterator>
bool std::prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last)
 Permute range into the previous "dictionary" ordering.
template<typename _BidirectionalIterator, typename _Compare>
bool std::prev_permutation (_BidirectionalIterator __first, _BidirectionalIterator __last, _Compare __comp)
 Permute range into the previous "dictionary" ordering using comparison functor.
template<typename _InputIterator, typename _ForwardIterator>
_InputIterator std::find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2)
 Find element from a set in a sequence.
template<typename _InputIterator, typename _ForwardIterator, typename _BinaryPredicate>
_InputIterator std::find_first_of (_InputIterator __first1, _InputIterator __last1, _ForwardIterator __first2, _ForwardIterator __last2, _BinaryPredicate __comp)
 Find element from a set in a sequence using a predicate.
template<typename _ForwardIterator1, typename _ForwardIterator2>
_ForwardIterator1 std::__find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag)
template<typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate>
_ForwardIterator1 std::__find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, forward_iterator_tag, forward_iterator_tag, _BinaryPredicate __comp)
template<typename _BidirectionalIterator1, typename _BidirectionalIterator2>
_BidirectionalIterator1 std::__find_end (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag)
template<typename _BidirectionalIterator1, typename _BidirectionalIterator2, typename _BinaryPredicate>
_BidirectionalIterator1 std::__find_end (_BidirectionalIterator1 __first1, _BidirectionalIterator1 __last1, _BidirectionalIterator2 __first2, _BidirectionalIterator2 __last2, bidirectional_iterator_tag, bidirectional_iterator_tag, _BinaryPredicate __comp)
template<typename _ForwardIterator1, typename _ForwardIterator2>
_ForwardIterator1 std::find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2)
 Find last matching subsequence in a sequence.
template<typename _ForwardIterator1, typename _ForwardIterator2, typename _BinaryPredicate>
_ForwardIterator1 std::find_end (_ForwardIterator1 __first1, _ForwardIterator1 __last1, _ForwardIterator2 __first2, _ForwardIterator2 __last2, _BinaryPredicate __comp)
 Find last matching subsequence in a sequence using a predicate.


Detailed Description

This is an internal header file, included by other library headers. You should not attempt to use it directly.

Definition in file stl_algo.h.


Define Documentation

#define _ALGO_H   1

Definition at line 63 of file stl_algo.h.


Generated on Tue Feb 2 16:57:27 2010 for GNU C++ STL by  doxygen 1.4.7