ホーム | ブログ | C++辞典 | サイトマップ | FAQ | 掲示板 | リンク集
メイン・メニュー
インデックス
プログラミング
その他
<algorithm>ヘッダ のバックアップソース(No.7)

*<algorithm>ヘッダ [#a673993d]

**ヘッダ内容 [#q90234fb]
namespace std {~

&nbsp; template<class InputIterator, class Funtion>~
&nbsp;&nbsp;&nbsp;&nbsp;Function [[''for_each''>#for_each]](InputIterator '''first''', InputIterator '''last''', Function '''f''');~

&nbsp; template<class InputIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;InputIterator [[''find''>#find]](InputIterator '''first''', InputIterator '''last''', const T& '''value''');~

&nbsp; template<class InputIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;InputIterator [[''find_if''>#find_if]](InputIterator '''first''', InputIterator '''last''', Predicate '''pred''');~

&nbsp; template<class [[ForwardIterator1>ForwardIterator]], class [[ForwardIterator2>ForwardIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator1 [[''find_end''>#find_end]](ForwardIterator1 '''first1''', ForwardIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator2 '''first2''', ForwardIterator2 '''last2''');~

&nbsp; template<class [[ForwardIterator1>ForwardIterator]], class [[ForwardIterator2>ForwardIterator]], ckass BinaryPredicate>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator1 [[''find_end''>#find_end]](ForwardIterator1 '''first1''', ForwardIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator2 '''first2''', ForwardIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryPredicate '''pred''');~

&nbsp; template<class [[ForwardIterator1>ForwardIterator]], class [[ForwardIterator2>ForwardIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator1 [[''find_first_of''>#find_first_of]](ForwardIterator1 '''first1''', ForwardIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator2 '''first2''', ForwardIterator2 '''last2''');~

&nbsp; template<class [[ForwardIterator1>ForwardIterator]], class [[ForwardIterator2>ForwardIterator]], BinaryPredicate pred>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator1 [[''find_first_of''>#find_first_of]](ForwardIterator1 '''first1''', ForwardIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator2 '''first2''', ForwardIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryPredicate '''pred''');~

&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''adjacent_find''>#adjacent_find]](ForwardIterator '''first''', ForwardIterator '''last''');~

&nbsp; template<class ForwardIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''adjacent_find''>#adjacent_find]](ForwardIterator '''first''', ForwardIterator '''last''',~ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Predicate '''pred''');~

&nbsp; template<class InputIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;typename iterator_traits<InputIterator>::difference_type~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''count''>#count]](InputIterator '''first''', InputIterator '''last''', const T& '''value''');~

&nbsp; template<class InputIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;typename iterator_traits<InputIterator>::difference_type~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''count_if''>#count_if]](InputIterator '''first''', InputIterator '''last''', Predicate '''pred''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;pair<InputIterator1, InputIterator2>~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''mismatch''>#mismatch]](InputIterator1 '''first1''', InputIterator1 '''last1''', InputIterator2 '''first2''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;pair<InputIterator1, InputIterator2>~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''mismatch''>#mismatch]](InputIterator1 '''first1''', InputIterator1 '''last1''', InputIterator2 '''first2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Predicate '''pred''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''equal''>#equal]](InputIterator1 '''first1''', InputIterator1 '''last1''', InputIterator2 '''first2''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], Predicate pred>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''equal''>#equal]](InputIterator1 '''first1''', InputIterator1 '''last1''', InputIterator2 '''first2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Predicate '''pred''');~

&nbsp; template<class [[ForwardIterator1>ForwardIterator]], class [[ForwardIterator2>ForwardIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator1 [[''search''>#search]](ForwardIterator1 '''first1''', ForwardIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator2 '''first2''', ForwardIterator2 '''last2''');~

&nbsp; template<class [[ForwardIterator1>ForwardIterator]], class [[ForwardIterator2>ForwardIterator]], class BinaryPredicate>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator1 [[''search''>#search]](ForwardIterator1 '''first1''', ForwardIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator2 '''first2''', ForwardIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryPredicate '''pred''');~

&nbsp; template<class ForwardIterator, class Size, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''search_n''>#search_n]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size '''count''', const T& '''value''');~

&nbsp; template<class ForwardIterator, class Size, class T, BinaryPredicate pred>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''search_n''>#search_n]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Size '''count''', const T& '''value''', BinaryPredicate '''pred''');~

&nbsp; template<class InputIterator, class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''copy''>#copy]](InputIterator '''first''', InputIterator '''last''', OutputIterator '''result''');~

&nbsp; template<class [[BidirectionalIterator1>BidirectionalIterator]], class [[BidirectionalIterator2>BidirectionalIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator2 [[''copy_backward''>#copy_backward]]~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(BidirectionalIterator '''first''', BidirectionalIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator '''result''');~

&nbsp; template<class T> void [[''swap''>#swap]](T& a, T& b);~

&nbsp; template<class [[ForwardIterator1>ForwardIterator]], class [[ForwardIterator2>ForwardIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator2 [[''swap_ranges''>#swap_ranges]](ForwardIterator1 '''first1''', ForwardIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator2 '''first2''', ForwardIterator2 '''last2''');~

&nbsp; template<class [[ForwardIterator1>ForwardIterator]], class [[ForwardIterator2>ForwardIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''iter_swap''>#iter_swap]](ForwardIterator1 '''a''', ForwardIterator1 '''b''');~

&nbsp; template<class InputIterator, class OutputIterator, class UnaryOperator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''transform''>#transform]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', UnaryOperator '''op''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]],~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class OutputIterator, class BinaryOperator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''transform''>#transform]](InputIterator1 '''first1''', InputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', OutputIterator '''result''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryOperator '''binary_op''');~

&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''replace''>#replace]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''old_value''', const T& '''new_value''');~

&nbsp; template<class ForwardIterator, class Predicate, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''replace_if''>#replace_if]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Predicate '''pred''', const T& '''new_value''');~

&nbsp; template<class InputIterator, class OutputIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''replace_copy''>#replace_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''old_value''', const T& '''new_value''');~

&nbsp; template<class InputIterator, class OutputIterator, class Predicate, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''replace_copy_if''>#replace_copy_if]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Predicate '''pred''', const T& '''new_value''');~

&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''fill''>#fill]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''');~

&nbsp; template<class ForwardIterator, class Size, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''fill_n''>#fill_n]](ForwardIterator '''first''', Size '''n''', const T& '''value''');~

&nbsp; template<class ForwardIterator, class Generator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''generate''>#generate]](ForwardIterator '''first''', ForwardIterator '''last''', Generator '''gen''');~

&nbsp; template<class ForwardIterator, class Size, class Generator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''generate_n''>#generate_n]](ForwardIterator '''first''', Size '''n''', Generator '''gen''');~

&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''remove''>#remove]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''');~

&nbsp; template<class ForwardIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''remove_if''>#remove_if]](ForwardIterator '''first''', ForwardIterator '''last''', Predicate '''pred''');~

&nbsp; template<class InputIterator, class OutputIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''remove_copy''>#remove_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', const T& '''value''');~

&nbsp; template<class InputIterator, class OutputIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''remove_copy_if''>#remove_copy_if]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Predicate '''pred''');~

&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''unique''>#unique]](ForwardIterator '''first''', ForwardIterator '''last''');

&nbsp; template<class ForwardIterator, class BinaryPredicate>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''unique''>#unique]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryPredicate '''pred''');

&nbsp; template<class InputIterator, class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''unique_copy''>#unique_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');

&nbsp; template<class InputIterator, class OutputIterator, class BinaryPredicate>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''unique_copy''>#unique_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', BinaryPredicate '''pred''');

&nbsp; template<class BidirectionalIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''reverse''>#reverse]](BidirectionalIterator '''first''', BidirectionalIterator '''last''');

&nbsp; template<class BidirectionalIterator, class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''reverse_copy''>#reverse_copy]](BidirectionalIterator '''first''', BidirectionalIterator '''last'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');

&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''rotate''>#rotate]](ForwardIterator '''first''', ForwardIterator '''middle''', ForwardIterator '''last''');

&nbsp; template<class ForwardIterator, class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''rotate_copy''>#rotate_copy]](ForwardIterator '''first''', ForwardIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator '''last''', OutputIterator '''result''');

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''random_shuffle''>#random_shuffle]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');

&nbsp; template<class RandomAccessIterator, class RandomNumberGenerator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''random_shuffle''>#random_shuffle]](RandomAccessIterator '''first''', RandomAccessIterator '''last'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomNumberGenerator& rand);

&nbsp; template<class BidirectionalIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator [[''partition''>#partition]](BidirectionalIterator '''first''', BidirectionalIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Predicate pred);~

&nbsp; template<class BidirectionalIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator [[''stable_partition''>#stable_partition]](BidirectionalIterator '''first''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator '''last''', Predicate '''pred''');~

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''sort''>#sort]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''sort''>#sort]](RandomAccessIterator '''first''', RandomAccessIterator '''last''', Compare '''comp''');~

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''stable_sort''>#stable_sort]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''stable_sort''>#stable_sort]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''partial_sort''>#partial_sort]](RandomAccessIterator '''first''', RandomAccessIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''last''');

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''partial_sort''>#partial_sort]](RandomAccessIterator '''first''', RandomAccessIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''last''', Compare '''comp''');

&nbsp; template<class InputIterator, class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''partial_sort_copy''>#partial_sort_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''result_first''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''result_last''');~

&nbsp; template<class InputIterator, class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''partial_sort_copy''>#partial_sort_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''result_first''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''result_last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''nth_element''>#nth_element]](RandomAccessIterator '''first''', RandomAccessIterator '''nth''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''last''');

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''nth_element''>#nth_element]](RandomAccessIterator '''first''', RandomAccessIterator '''nth''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''last''', Compare '''comp''');

&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''lower_bound''>#lower_bound]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''value''');~

&nbsp; template<class ForwardIterator, class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''lower_bound''>#lower_bound]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''value''', Compare '''comp''');~

&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''upper_bound''>#upper_bound]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''value''');~

&nbsp; template<class ForwardIterator, class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''upper_bound''>#upper_bound]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''value''', Compare '''comp''');~

&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;pair<ForwardIterator, ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''equal_range''>#equal_range]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''');~

&nbsp; template<class ForwardIterator, class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;pair<ForwardIterator, ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''equal_range''>#equal_range]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''binary_search''>#binary_search]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''');~

&nbsp; template<class ForwardIterator, class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''binary_search''>#binary_search]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''merge''>#merge]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''merge''>#merge]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

&nbsp; template<class BidirectionalIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''inplace_merge''>#inplace_merge]](BidirectionalIterator '''first''', BidirectionalIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator '''last''');

&nbsp; template<class BidirectionalIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''inplace_merge''>#inplace_merge]](BidirectionalIterator '''first''', BidirectionalIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator '''last''', Compare '''comp''');

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''includes''>#includes]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''includes''>#includes]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_union''>#set_union]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_union''>#set_union]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_intersection''>#set_intersection]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_intersection''>#set_intersection]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_difference''>#set_difference]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_difference''>#set_difference]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_symmetric_difference''>#set_symmetric_difference]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_symmetric_difference''>#set_symmetric_difference]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''push_heap''>#push_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''push_heap''>#push_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''pop_heap''>#pop_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''pop_heap''>#pop_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''make_heap''>#make_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''make_heap''>#make_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''sort_heap''>#sort_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''sort_heap''>#sort_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class T> const T& [[min>#min]](const T& '''a''', const T& '''b''');~

&nbsp; template<class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;const T& [[''min''>#min]](const T& '''a''', const T& '''b''', Compare '''comp''');~

&nbsp; template<class T> const T& [[max>#max]](const T& '''a''', const T& '''b''');~

&nbsp; template<class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;const T& [[''max''>#max]](const T& '''a''', const T& '''b''', Compare '''comp''');~

&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''min_element''>#min_element]](ForwardIterator '''first''', ForwardIterator '''last''');~

&nbsp; template<class ForwardIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''min_element''>#min_element]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comapre '''comp''');~

&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''max_element''>#max_element]](ForwardIterator '''first''', ForwardIterator '''last''');~

&nbsp; template<class ForwardIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''max_element''>#max_element]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comapre '''comp''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''lexicographical_compare''>#lexicographical_compare]](InputIterator1 '''first1''', InputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''lexicographical_compare''>#lexicographical_compare]](InputIterator1 '''first1''', InputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class BidirectionalIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''next_permutation''>#next_permutation]](BidirectionalIterator '''first''', BidirectionalIterator '''last''');~

&nbsp; template<class BidirectionalIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''next_permutation''>#next_permutation]](BidirectionalIterator '''first''', BidirectionalIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

&nbsp; template<class BidirectionalIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''prev_permutation''>#prev_permutation]](BidirectionalIterator '''first''', BidirectionalIterator '''last''');~

&nbsp; template<class BidirectionalIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''prev_permutation''>#prev_permutation]](BidirectionalIterator '''first''', BidirectionalIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

}

**関数 [#l7232439]

&aname(for_each);
***for_each [#u090a93a]
各要素に対する処理

''形式''~
&nbsp; template<class InputIterator, class Funtion>~
&nbsp;&nbsp;&nbsp;&nbsp;Function [[''for_each''>#for_each]](InputIterator '''first''', InputIterator '''last''', Function '''f''');~

''[[引数]]''~
  '''first''':  先頭要素を指す InputIterator~
  '''last''':  終端要素の次を指す InputIterator~
  '''f''':  各要素に適用する処理~

''[[返却値]]''~
 '''f''' を返す。

''解説''~
 区間 ['''first''', '''last'''-1) の各[[反復子]] '''iter''' に対して、'''f'''(*'''iter''') を実行する。'''f''' が何らかの[[返却値]]を返す場合には、その値は単に無視される。

''計算量''~
 '''f''' がちょうど '''last''' - '''first''' 回適用される。


&aname(find);
***find [#rc9a4e7b]
[[値]]の探索

''形式''~
&nbsp; template<class InputIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;InputIterator [[''find''>#find]](InputIterator '''first''', InputIterator '''last''', const T& '''value''');~

''[[引数]]''~
  '''first''':  先頭要素を指す InputIterator~
  '''last''':  終端要素の次を指す InputIterator~
  '''value''':  探索対象の[[値]]。型 T は EqualityComparable~

''[[返却値]]''~
 探査に成功すれば検出位置を指す[[反復子]]を、失敗した場合は '''last''' を返す。

''解説''~
 区間 ['''first''', '''last''') の[[反復子]] '''iter''' であり、かつ *'''iter''' == '''value''' となる最初の要素を探索する。

''計算量''~
 *'''iter''' == '''value''' の評価を、多くとも '''last''' - '''first''' 回実行する。

''参照''~
→ [[find_if>#find_if]]

&aname(find_if);
***find_if [#i228852d]
条件に一致する要素の探索

''形式''~
&nbsp; template<class InputIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;InputIterator [[''find_if''>#find_if]](InputIterator '''first''', InputIterator '''last''', Predicate '''pred''');~

''[[引数]]''~
  '''first''':  先頭要素を指す InputIterator~
  '''last''':  終端要素の次を指す InputIterator~
  '''pred''':  探索条件となる[[述語]]~

''[[返却値]]''~
 探査に成功すれば検出位置を指す[[反復子]]を、失敗した場合は '''last''' を返す。

''解説''~
 区間 ['''first''', '''last''') の[[反復子]] '''iter''' であり、かつ '''pred'''('''iter''') != false となる最初の要素を探索する。

''計算量''~
 [[述語]]の適応を、多くとも '''last''' - '''first''' 回実行する。

''参照''~
→ [[find>#find]]

&aname(find_end);
***find_end [#kb9c8797]

&aname(find_first_of);
***find_first_of [#rb4923d6]

&aname(adjacent_find);
***adjacent_find [#t89f9836]

&aname(count);
***count [#w6ea6c93]

&aname(count_if);
***count_if [#ea7c8a8d]

&aname(mismatch);
***mismatch [#k04f1b1d]

&aname(equal);
***equal [#x81cf4bd]

&aname(search);
***search [#t07772e4]

&aname(search_n);
***search_n [#q4ac7b3d]

&aname(copy);
***copy [#x5c0f3f1]

&aname(copy_backward);
***copy_backward [#k70001bb]

&aname(swap);
***swap [#u4a333ef]

&aname(swap_ranges);
***swap_ranges [#i5a65398]

&aname(iter_swap);
***iter_swap [#c4ca2591]

&aname(transform);
***transform [#b1b9f007]

&aname(replace);
***replace [#t645b466]

&aname(replace_if);
***replace_if [#i8c14ac7]

&aname(replace_copy);
***replace_copy [#e001d375]

&aname(replace_copy_if);
***replace_copy_if [#g1b70e5d]

&aname(fill);
***fill [#f6345347]
列を指定値で埋める

''形式''~
&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''fill''>#fill]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''value''':  列を埋める値~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') にあるすべての[[反復子]]を通して、各要素に '''value''' を[[代入]]する。

''計算量''~
 ちょうど '''last''' - '''first''' 回代入が行われる。

&aname(fill_n);
***fill_n [#of1ae6e0]
n 要素の列を指定値で埋める

''形式''~
&nbsp; template<class ForwardIterator, class Size, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''fill_n''>#fill_n]](ForwardIterator '''first''', Size '''n''', const T& '''value''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''n''':  対象となる列の要素数~
  '''value''':  列を埋める値~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''first''' + '''n''') にあるすべての[[反復子]]を通して、各要素に '''value''' を[[代入]]する。

''計算量''~
 ちょうど '''n''' 回代入が行われる。

&aname(generate);
***generate [#n628daea]
列の生成

''形式''~
&nbsp; template<class ForwardIterator, class Generator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''generate''>#generate]](ForwardIterator '''first''', ForwardIterator '''last''', Generator '''gen''');~

''[[引数]]''~
  '''first''':  生成対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  生成対象となる列の終端要素の次を指す ForwardIterator~
  '''gen''':  生成関数~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') にあるすべての[[反復子]]を通して、'''gen''' の[[返却値]]を[[代入]]する。'''gen''' は[[実引数]]を取らない。

''計算量''~
 ちょうど '''last''' - '''first''' 回 '''gen''' が呼び出される。

''参照''~
→ [[generate_n>#generate_n]]

&aname(generate_n);
***generate_n [#rf4b0417]
n 要素の列を生成

''形式''~
&nbsp; template<class ForwardIterator, class Size, class Generator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''generate_n''>#generate_n]](ForwardIterator '''first''', Size '''n''', Generator '''gen''');~

''[[引数]]''~
  '''first''':  生成対象となる列の先頭要素を指す ForwardIterator~
  '''n''':  生成対象となる列の要素数~
  '''gen''':  生成関数~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''first''' + '''n''') にあるすべての[[反復子]]を通して、'''gen''' の[[返却値]]を[[代入]]する。'''gen''' は[[実引数]]を取らない。また、型 Size は[[汎整数型]]に変換できなければならない。

''計算量''~
 ちょうど '''n''' 回 '''gen''' が呼び出される。

''参照''~
→ [[generate>#generate]]

&aname(remove);
***remove [#ue949fc7]
要素の削除

''形式''~
&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''remove''>#remove]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''value''':  削除対象。型 T は EualityComparable~

''[[返却値]]''
 結果列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、*'''iter''' == '''value''' が成立する要素を削除する。削除されない要素の相対順序は、元の相対順序が保存される。

''計算量''~
 ちょうど '''last''' - '''first''' 回比較を行う。

''参照''~
→ [[remove_if>#remove_if]], [[remove_copy>#remove_copy]], [[remove_copy_if>#remove_copy_if]]

&aname(remove_if);
***remove_if [#b6fdcc36]
条件が成立する要素の削除

''形式''~
&nbsp; template<class ForwardIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''remove_if''>#remove_if]](ForwardIterator '''first''', ForwardIterator '''last''', Predicate '''pred''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''
 結果列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、'''pred'''(*'''iter''', '''value''') != false が成立する要素を削除する。削除されない要素の相対順序は、元の相対順序が保存される。

''計算量''~
 ちょうど '''last''' - '''first''' 回述語を適用する。

''参照''~
→ [[remove>#remove]], [[remove_copy>#remove_copy]], [[remove_copy_if>#remove_copy_if]]

&aname(remove_copy);
***remove_copy [#i4b19309]
指定要素を除くコピー

''形式''~
&nbsp; template<class InputIterator, class OutputIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''remove_copy''>#remove_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', const T& '''value''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''result''':  出力先の先頭要素を指す OutputIterator~
  '''value''':  削除対象。型 T は EualityComparable~

''[[返却値]]''
 結果列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、*'''iter''' == '''value''' が成立する要素を除き、'''result''' から始まる列にコピーする。削除されない要素の相対順序は、元の相対順序が保存される。元の列と出力先の列は重複していてはならない。

''計算量''~
 ちょうど '''last''' - '''first''' 回比較を行う。

&aname(remove_copy_if);
***remove_copy_if [#i0868ab7]
条件が成立する要素を除くコピー

''形式''~
&nbsp; template<class InputIterator, class OutputIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''remove_copy_if''>#remove_copy_if]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Predicate '''pred''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''result''':  出力先の先頭要素を指す OutputIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''
 結果列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、'''pred'''(*'''iter''', '''value''') != false が成立する要素を除き、'''result''' から始まる列にコピーする。削除されない要素の相対順序は、元の相対順序が保存される。元の列と出力先の列は重複していてはならない。

''計算量''~
 ちょうど '''last''' - '''first''' 回述語を適用する。

&aname(unique);
***unique [#haaf4c56]
連続した重複要素の除去

''形式''~
&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''unique''>#unique]](ForwardIterator '''first''', ForwardIterator '''last''');

&nbsp; template<class ForwardIterator, class BinaryPredicate>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''unique''>#unique]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryPredicate '''pred''');

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''~
 結果列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') にあるすべての重複要素を取り除く。すなわち、区間内の (先頭位置を除く) [[反復子]] '''iter''' に対して、最初の形式では *'''iter''' == *('''iter''' - 1) を、2 番目の形式では '''pred'''(*'''iter''', *('''iter''' - 1)) == false が成立する最長の部分から、その先頭要素を残して他の要素が除去される。

''計算量''~
 列が空でなければ、ちょうど ('''last''' - '''first''') - 1 回比較または[[述語]] を適用する。そうでなければ、比較または述語は 1 回も適用しない。

''参照''~
→ [[unique_copy>#unique_copy]]

&aname(unique_copy);
***unique_copy [#sfa77d8f]
連続した重複要素を除くコピー

''形式''~
&nbsp; template<class InputIterator, class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''unique_copy''>#unique_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');

&nbsp; template<class InputIterator, class OutputIterator, class BinaryPredicate>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''unique_copy''>#unique_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', BinaryPredicate '''pred''');

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''result''':  出力先の先頭要素を指す OutputIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''~
 結果列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') にあるすべての重複要素を除いて、'''result''' から始まる列にコピーする。すなわち、区間内の (先頭位置を除く) [[反復子]] '''iter''' に対して、最初の形式では *'''iter''' == *('''iter''' - 1) を、2 番目の形式では '''pred'''(*'''iter''', *('''iter''' - 1)) == false が成立する最長の部分から、その先頭要素のみがコピーされる。

''計算量''~
 ちょうど ('''last''' - '''first''') - 1 回比較または[[述語]] を適用する。

''参照''~
→ [[unique>#unique]]

&aname(reverse);
***reverse [#mab01cbd]
列の逆順再配置

''形式''~
&nbsp; template<class BidirectionalIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''reverse''>#reverse]](BidirectionalIterator '''first''', BidirectionalIterator '''last''');

''[[引数]]''~
  '''first''':  再配置対象となる列の先頭要素を指す BidirectionalIterator~
  '''last''':  再配置対象となる列の終端要素の次を指す BidirectionalIterator~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''iter''', '''last''') で定義される列を [[iter_swap>#iter_swap]] により逆順に再配置する。

''計算量''~
 多くとも '''last''' - '''first''' 回の交換を行う。

''参照''~
→ [[reverse_copy>#reverse_copy]]

&aname(reverse_copy);
***reverse_copy [#n83604c6]
列の逆順コピー

''形式''~
&nbsp; template<class BidirectionalIterator, class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''reverse_copy''>#reverse_copy]](BidirectionalIterator '''first''', BidirectionalIterator '''last'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す BidirectionalIterator~
  '''last''':  対象となる列の終端要素の次を指す BidirectionalIterator~
  '''result''':  出力先となる列の先頭要素を指す OutputIterator~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''iter''', '''last''') で定義される列を、'''result''' から始まる列に、逆順にコピーする。元の列と出力先の列が重なっていてはならない。

''計算量''~
 ちょうど '''last''' - '''first''' 回の代入を行う。

''参照''~
→ [[reverse>#reverse]]

&aname(rotate);
***rotate [#k5815fe6]
列の回転

''形式''~
&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''rotate''>#rotate]](ForwardIterator '''first''', ForwardIterator '''middle''', ForwardIterator '''last''');~

''[[引数]]''~
  '''first''':  回転対象となる列の先頭要素を指す ForwardIterator~
  '''middle''':  回転後に先頭に移動する要素を指す ForwardIterator~
  '''last''':  回転対象となる列の終端要素の次を指す ForwardIterator~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') を、'''middle''' が指す要素が先頭になるように回転しする。区間 ['''first''', '''middle''') および区間 ['''middle''', '''last''') は正しい列でなければならない。

''計算量''~
 多くとも '''last''' - '''first''' 回の交換を行う。

''参照''~
→ [[rotate_copy>#rotate_copy]]

&aname(rotate_copy);
***rotate_copy [#wbbce5c5]
列の回転とコピー

''形式''~
&nbsp; template<class ForwardIterator, class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''rotate_copy''>#rotate_copy]](ForwardIterator '''first''', ForwardIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator '''last''', OutputIterator '''result''');~

''[[引数]]''~
  '''first''':  回転対象となる列の先頭要素を指す ForwardIterator~
  '''middle''':  回転後に先頭に移動する要素を指す ForwardIterator~
  '''last''':  回転対象となる列の終端要素の次を指す ForwardIterator~
  '''result''':  出力先となる列の先頭要素を指す OutputIterator~

''[[返却値]]''~
 結果列の終端位置の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') を、'''middle''' が指す要素が先頭になるように回転し、その結果を '''result''' から始まる列に格納する。区間 ['''first''', '''middle''') および区間 ['''middle''', '''last''') は正しい列でなければならない。また、元の列と出力先の列が重なっていてはならない。

''計算量''~
 ちょうど '''last''' - '''first''' 回の代入を行う。

''参照''~
→ [[rotate>#rotate]]

&aname(random_shuffle);
***random_shuffle [#lf9b96ef]
乱数によるシャッフル

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''random_shuffle''>#random_shuffle]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');

&nbsp; template<class RandomAccessIterator, class RandomNumberGenerator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''random_shuffle''>#random_shuffle]](RandomAccessIterator '''first''', RandomAccessIterator '''last'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomNumberGenerator& rand);

''[[引数]]''~
  '''first''':  シャッフル対象となる列の先頭要素を指す RandomAccessIterator~
  '''last''':  シャッフル対象となる列の終端要素の次を指す RandomAccessIterator~
  '''rand''':  乱数生成[[関数オブジェクト]]~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') で定義される列を一様にシャッフルする。乱数生成[[関数オブジェクト]] '''rand''' は任意のものを指定してもよいが、[[iterator_traits>#<iterator>ヘッダ#iterator_traits]]<RandomAccessIterator>:: difference_type 型の正の[[実引数]] '''n''' に対して、'''rand'''('''n''') は、iterator_traits<RandomAccessIterator>:: difference_type 型に変換可能な型を持ち、かつ値域 [0, '''n''') の中からランダムに抽出された値を返さなければならない。

''計算量''~
 ちょうど ('''last''' - '''first''') - 1 回の交換を行う。

''参照''~
→ [[rand><cstdlib>ヘッダ#rand]], [[srand><cstdlib>ヘッダ#srand]]

&aname(partition);
***partition [#ad8e1ef4]
列の分割

''形式''~
&nbsp; template<class BidirectionalIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator [[''partition''>#partition]](BidirectionalIterator '''first''', BidirectionalIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Predicate pred);~

''[[引数]]''~
  '''first''':  分割対象となる列の先頭要素を指す BidirectionalIterator~
  '''last''':  分割対象となる列の終端要素の次を指す BidirectionalIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''~
 分割位置を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') で定義される列を、[[述語]] pred が成立する要素を前に、成立しない要素を後ろに再配置する。

''計算量''~
 多くとも ('''last''' - '''first''') / 2 回の交換を行う。メモリが十分にある場合には線形で済む。また、'''last''' - '''first''' 回だけ述語 '''pred''' を適用する。

''参照''~
→ [[stable_partition>#stable_partition]]

&aname(stable_partition);
***stable_partition [#n318c5b8]
列の安定な分割

''形式''~
&nbsp; template<class BidirectionalIterator, class Predicate>~
&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator [[''stable_partition''>#stable_partition]](BidirectionalIterator '''first''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator '''last''', Predicate '''pred''');~

''[[引数]]''~
  '''first''':  分割対象となる列の先頭要素を指す BidirectionalIterator~
  '''last''':  分割対象となる列の終端要素の次を指す BidirectionalIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''~
 分割位置を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') で定義される列を、[[述語]] pred が成立する要素を前に、成立しない要素を後ろに再配置する。同値の要素の順序は、再配置後も保存される。

''計算量''~
 多くとも ('''last''' - '''first''')×log('''last''' - '''first''') 回の交換を行う。メモリが十分にある場合には線形で済む。また、'''last''' - '''first''' 回だけ述語 '''pred''' を適用する。

''参照''~
→ [[partition>#partition]]

&aname(sort);
***sort [#j0690e97]
整列

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''sort''>#sort]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''sort''>#sort]](RandomAccessIterator '''first''', RandomAccessIterator '''last''', Compare '''comp''');~

''[[引数]]''~
  '''first''':  整列対象となる列の先頭要素を指す RandomAccessIterator~
  '''last''':  整列対象となる列の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') で定義される列を整列する。

''計算量''~
 平均的に '''N''' log '''N''' 回の比較を行う。ただし、'''N''' は '''last''' - '''first''' である。

''参照''~
→ [[stable_sort>#stable_sort]]

&aname(stable_sort);
***stable_sort [#j4ef7bd5]
安定な整列

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''stable_sort''>#stable_sort]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''stable_sort''>#stable_sort]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');

''[[引数]]''~
  '''first''':  整列対象となる列の先頭要素を指す RandomAccessIterator~
  '''last''':  整列対象となる列の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') で定義される列を整列する。同値の要素の順序は整列後も保存される。

''計算量''~
 多くとも '''N''' (log '''N''')^2 回の比較を行う。メモリが十分にある場合には '''N''' log '''N''' 回の比較を行う。ただし、'''N''' は '''last''' - '''first''' である。

''参照''~
→ [[sort>#sort]]

&aname(partial_sort);
***partial_sort [#t09938d9]
部分整列

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''partial_sort''>#partial_sort]](RandomAccessIterator '''first''', RandomAccessIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''last''');

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''partial_sort''>#partial_sort]](RandomAccessIterator '''first''', RandomAccessIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''last''', Compare '''comp''');

''[[引数]]''~
  '''first''':  整列対象となる列の先頭要素を指す RandomAccessIterator~
  '''middle''':  整列結果となる列の終端要素の次を指す RandomAccessIterator~
  '''last''':  整列対象となる列の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') を整列した場合の最初の '''middle''' - '''first''' 個の要素を、区間 ['''first''', '''middle''') に格納する。実行後の区間 ['''middle''', '''last''') の内容は[[未規定>未規定の動作]]である。

''計算量''~
 ほぼ ('''last''' - '''first''')×log('''middle''' - '''first''') 回の比較を行う。

''参照''~
→ [[partial_sort_copy>#partial_sort_copy]]

&aname(partial_sort_copy);
***partial_sort_copy [#jfdb581a]
部分整列とコピー

''形式''~
&nbsp; template<class InputIterator, class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''partial_sort_copy''>#partial_sort_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''result_first''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''result_last''');~

&nbsp; template<class InputIterator, class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''partial_sort_copy''>#partial_sort_copy]](InputIterator '''first''', InputIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''result_first''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''result_last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  元の列の先頭要素を指す InputIterator~
  '''last''':  元の列の終端要素の次を指す InputIterator~
  '''result_first''':  出力先となる列の先頭要素を指す RandomAccessIterator~
  '''result_last''':  出力先となる列の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 結果の列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 '''first''' から始まる、区間 ['''first''', '''last''') または区間 ['''result_first''', '''result_last''') のうちの小さい方の要素数を整列して、'''result_first''' から始まる列に出力する。

''計算量''~
 ほぼ ('''last''' - '''first''')×log( min( ('''last''' - '''first'''), ('''result_last''' - '''result_first''') ) ) 回の比較を行う。

''参照''~
→ [[partial_sort>#partial_sort]]

&aname(nth_element);
***nth_element [#i06e6c88]
基準位置による列の分割

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''nth_element''>#nth_element]](RandomAccessIterator '''first''', RandomAccessIterator '''nth''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''last''');

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''nth_element''>#nth_element]](RandomAccessIterator '''first''', RandomAccessIterator '''nth''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RandomAccessIterator '''last''', Compare '''comp''');

''[[引数]]''~
  '''first''':  分割対象となる列の先頭要素を指す RandomAccessIterator~
  '''nth''':  分割の基準位置を指す RandomAccessIterator~
  '''last''':  分割対象となる列の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''nth''') にある任意の[[反復子]] '''iter1''' が、区間 ['''nth''', '''last''') にある任意の反復子 '''iter2''' に対して、最初の形式では !(*'''iter1''' > *'''iter2''') が、2 番目の形式では '''comp'''(*'''iter2''', *'''iter1''') == false が成立するように再配置する。'''nth''' の位置には、列全体を整列したときにその位置に来る要素が格納される。

''計算量''~
 平均で線形である。

&aname(lower_bound);
***lower_bound [#x66ab6c3]
順を乱さずに要素を挿入できる下限

''形式''~
&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''lower_bound''>#lower_bound]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''value''');~

&nbsp; template<class ForwardIterator, class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''lower_bound''>#lower_bound]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''value''', Compare '''comp''');~

''[[引数]]''~
  '''first''':  探索対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  探索対象となる列の終端要素の次を指す ForwardIterator~
  '''value''':  探索する値。型 T は LessThanComparable~
  '''comp''':  比較関数~

''[[返却値]]''~
 順を乱さずに '''value''' を挿入できる最初の位置 (下限) を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') にある任意の[[反復子]] '''iter''' の位置に、順序を乱さずに要素 '''value''' を挿入することができる最初の位置を探索する。順序を乱さずに挿入ができるとは、最初の形式では !(*'''iter''' < '''value''') && !('''value''' < *'''iter''') が、2 番目の形式では !'''comp'''(*'''iter''', '''value''') && !'''comp'''('''value''',  *'''iter''') が成立することを意味する。

''計算量''~
 多くとも log('''last''' - '''first''') + 1 回の比較を行う。

''参照''~
→ [[upper_bound>#upper_bound]], [[equal_range>#equal_range]]

&aname(upper_bound);
***upper_bound [#aed9ea1e]
順を乱さずに要素を挿入できる上限

''形式''~
&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''upper_bound''>#upper_bound]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''value''');~

&nbsp; template<class ForwardIterator, class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''upper_bound''>#upper_bound]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const T& '''value''', Compare '''comp''');~

''[[引数]]''~
  '''first''':  探索対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  探索対象となる列の終端要素の次を指す ForwardIterator~
  '''value''':  探索する値。型 T は LessThanComparable~
  '''comp''':  比較関数~

''[[返却値]]''~
 順を乱さずに '''value''' を挿入できる最後の位置 (上限) を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') にある任意の[[反復子]] '''iter''' の位置に、順序を乱さずに要素 '''value''' を挿入することができる最後の位置を探索する。順序を乱さずに挿入ができるとは、最初の形式では !(*'''iter''' < '''value''') && !('''value''' < *'''iter''') が、2 番目の形式では !'''comp'''(*'''iter''', '''value''') && !'''comp'''('''value''',  *'''iter''') が成立することを意味する。

''計算量''~
 多くとも log('''last''' - '''first''') + 1 回の比較を行う。

''参照''~
→ [[lower_bound>#lower_bound]], [[equal_range>#equal_range]]

&aname(equal_range);
***equal_range [#l709f74d]
順を乱さずに要素を挿入できる範囲

''形式''~
&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;pair<ForwardIterator, ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''equal_range''>#equal_range]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''');~

&nbsp; template<class ForwardIterator, class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;pair<ForwardIterator, ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[[''equal_range''>#equal_range]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  探索対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  探索対象となる列の終端要素の次を指す ForwardIterator~
  '''value''':  探索する値。型 T は LessThanComparable~
  '''comp''':  比較関数~

''[[返却値]]''~
 返却値のメンバ .first には '''value''' を順を乱さずに要素を挿入できる最初の位置 (下限) を、.second には最後の位置 (上限) が格納される。対応する範囲が見つからなかった場合は .first および .second には '''last''' が格納される。

''解説''~
 区間 ['''first''', '''last''') にある任意の[[反復子]] '''iter''' の位置に、順序を乱さずに要素 '''value''' を挿入することができる最大の範囲を返す。順序を乱さずに挿入ができるとは、最初の形式では !(*'''iter''' < '''value''') && !('''value''' < *'''iter''') が、2 番目の形式では !'''comp'''(*'''iter''', '''value''') && !'''comp'''('''value''',  *'''iter''') が成立することを意味する。

''計算量''~
 多くとも 2×log('''last''' - '''first''') + 1 回の比較を行う。

''参照''~
→ [[lower_bound>#lower_bound]], [[upper_bound>#upper_bound]]

&aname(binary_search);
***binary_search [#qb338ea2]
二分探索

''形式''~
&nbsp; template<class ForwardIterator, class T>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''binary_search''>#binary_search]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''');~

&nbsp; template<class ForwardIterator, class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''binary_search''>#binary_search]](ForwardIterator '''first''', ForwardIterator '''last''', const T& '''value''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  探索対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  探索対象となる列の終端要素の次を指す ForwardIterator~
  '''value''':  探索する値。型 T は LessThanComparable~
  '''comp''':  比較関数~

''[[返却値]]''~
 探索に成功すれば true を、失敗すれば false を返す。

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、最初の形式では !(*'''iter''' < '''value''') && !('''value''' < *'''iter''') が、2 番目の形式では '''comp'''(*'''iter''', '''value''') == false && '''comp'''('''value''',  *'''iter''') == false が成立する要素を探索する。

''計算量''~
 多くとも log('''last''' - '''first''') + 2 回の比較を行う。

''参照''~
→ [[bsearch><cstdlib>ヘッダ#bsearch]]

&aname(merge);
***merge [#g6275daf]
併合

''形式''~
&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''merge''>#merge]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''merge''>#merge]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

''[[引数]]'''~
  '''first1''':  第 1 区間の先頭要素を指す InputIterator~
  '''last1''':  第 1 区間の終端要素の次を指す InputIterator~
  '''first2''':  第 2 区間の先頭要素を指す InputIterator~
  '''last2''':  第 2 区間の終端要素の次を指す InputIterator~
  '''result''':  結果集合の出力先の先頭要素を指す OutputIterator~
  '''comp''':  比較関数~

''[[返却値]]'''~
 結果集合の終端要素の次を指す[[反復子]]を返す。

''解説''~
 2 つの整列された区間を併合する。構築された集合は昇順に整列される。結果の区間は、元の集合の区間のいずれとも重なっていてはならない。両方の区間に存在する同じ値の要素は、第 1 区間にあったものが第 2 区間にあったものより前に格納される。

''計算量''~
 多くとも ('''last1''' - '''first1''') + ('''last2''' - '''first2''') - 1 回の比較を行う。

''参照''~
→ [[inplace_merge>#inplace_merge]]

&aname(inplace_merge);
***inplace_merge [#a036a0d3]
連続区間の併合

''形式''~
&nbsp; template<class BidirectionalIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''inplace_merge''>#inplace_merge]](BidirectionalIterator '''first''', BidirectionalIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator '''last''');~

&nbsp; template<class BidirectionalIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''inplace_merge''>#inplace_merge]](BidirectionalIterator '''first''', BidirectionalIterator '''middle''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BidirectionalIterator '''last''', Compare '''comp''');~

''[[引数]]''~
  '''first''':  第 1 区間の先頭要素を指す BidirectionalIterator~
  '''middle''':  第 1 区間の終端要素の次であり、かつ第 2 区間の先頭要素を指す BidirectionalIterator~
  '''last''':  第 2 区間の終端要素の次を指す BidirectionalIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 2 つの連続している整列された区間 ['''first''', '''middle''') および ['''middle''', '''last''') を併合し、結果を ['''first''', '''last''') に格納する。結果の区間は昇順に整列される。両方の区間に存在する同じ値の要素は、第 1 区間にあったものが第 2 区間にあったものより前に格納される。

''計算量''~
 メモリが十分にある場合には ('''last''' - '''first''') - 1 回の比較を行う。メモリが十分でない場合には '''N''' log '''N''' 回の比較を行う。ただし、'''N''' は '''last''' - '''first''' である。

''参照''~
→ [[merge>#merge]]

&aname(includes);
***includes [#tdb81fde]
部分集合の判別

''形式''~
&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''includes''>#includes]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''includes''>#includes]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]'''~
  '''first1''':  比較対象となる第 1 集合の先頭要素を指す InputIterator~
  '''last1''':  比較対象となる第 1 集合の終端要素の次を指す InputIterator~
  '''first2''':  比較対象となる第 2 集合の先頭要素を指す InputIterator~
  '''last2''':  比較対象となる第 2 集合の終端要素の次を指す InputIterator~
  '''result''':  結果集合の出力先の先頭要素を指す OutputIterator~
  '''comp''':  比較関数~

''[[返却値]]'''~
 第 2 集合が第 1 集合の部分集合であれば true を、そうでなければ false を返す。

''解説''~
 区間 ['''first2''', '''last2''') で定義される集合のすべての要素が区間 ['''first1''', '''last1''') で定義される集合に含まれるかどうかを判別する。

''計算量''~
 多くとも 2×( ('''last1''' - '''first1''') + ('''last2''' - '''first2''') ) - 1 回の比較を行う。

&aname(set_union);
***set_union [#nad677b1]
集合の和

''形式''~
&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_union''>#set_union]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_union''>#set_union]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

''[[引数]]'''~
  '''first1''':  比較対象となる第 1 集合の先頭要素を指す InputIterator~
  '''last1''':  比較対象となる第 1 集合の終端要素の次を指す InputIterator~
  '''first2''':  比較対象となる第 2 集合の先頭要素を指す InputIterator~
  '''last2''':  比較対象となる第 2 集合の終端要素の次を指す InputIterator~
  '''result''':  結果集合の出力先の先頭要素を指す OutputIterator~
  '''comp''':  比較関数~

''[[返却値]]'''~
 結果集合の終端要素の次を指す[[反復子]]を返す。

''解説''~
 2 つの区間の和集合、すなわち、区間 ['''first1''', '''last1''') で定義される第 1 集合および区間 ['''first2''', '''last2''') で定義される第 2 集合のいずれかに存在する要素の集合を構築する。構築された集合は整列される。結果の区間は、元の集合の区間のいずれとも重なっていてはならない。

''計算量''~
 多くとも 2×( ('''last1''' - '''first1''') + ('''last2''' - '''first2''') ) - 1 回の比較を行う。

''参照''~
→ [[set_intersection>#set_intersection]]

&aname(set_intersection);
***set_intersection [#g5a246c0]
集合の積

''形式''~
&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_intersection''>#set_intersection]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_intersection''>#set_intersection]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

''[[引数]]'''~
  '''first1''':  比較対象となる第 1 集合の先頭要素を指す InputIterator~
  '''last1''':  比較対象となる第 1 集合の終端要素の次を指す InputIterator~
  '''first2''':  比較対象となる第 2 集合の先頭要素を指す InputIterator~
  '''last2''':  比較対象となる第 2 集合の終端要素の次を指す InputIterator~
  '''result''':  結果集合の出力先の先頭要素を指す OutputIterator~
  '''comp''':  比較関数~

''[[返却値]]'''~
 結果集合の終端要素の次を指す[[反復子]]を返す。

''解説''~
 2 つの区間の積集合、すなわち、区間 ['''first1''', '''last1''') で定義される第 1 集合および区間 ['''first2''', '''last2''') で定義される第 2 集合の両方に存在する要素の集合を構築する。構築された集合は整列される。結果の区間は、元の集合の区間のいずれとも重なっていてはならない。

''計算量''~
 多くとも 2×( ('''last1''' - '''first1''') + ('''last2''' - '''first2''') ) - 1 回の比較を行う。

''参照''~
→ [[set_union>#set_union]]

&aname(set_difference);
***set_difference [#qbcb299a]
集合の差

''形式''~
&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_difference''>#set_difference]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_difference''>#set_difference]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

''[[引数]]'''~
  '''first1''':  比較対象となる第 1 集合の先頭要素を指す InputIterator~
  '''last1''':  比較対象となる第 1 集合の終端要素の次を指す InputIterator~
  '''first2''':  比較対象となる第 2 集合の先頭要素を指す InputIterator~
  '''last2''':  比較対象となる第 2 集合の終端要素の次を指す InputIterator~
  '''result''':  結果集合の出力先の先頭要素を指す OutputIterator~
  '''comp''':  比較関数~

''[[返却値]]'''~
 結果集合の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first1''', '''last1''') で定義される第 1 集合に存在し、区間 ['''first2''', '''last2''') で定義される第 2 集合には存在しない要素を、'''result''' から始まる区間にコピーする。構築された集合は整列される。結果の区間は、元の集合の区間のいずれとも重なっていてはならない。

''計算量''~
 多くとも 2×( ('''last1''' - '''first1''') + ('''last2''' - '''first2''') ) - 1 回の比較を行う。

''参照''~
→ [[set_symmetric_difference>#set_symmetric_difference]]

&aname(set_symmetric_difference);
***set_symmetric_difference [#q93e7e59]
集合の対称差

''形式''~
&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_symmetric_difference''>#set_symmetric_difference]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class OutputIterator,~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator [[''set_symmetric_difference''>#set_symmetric_difference]](InputIterator1 '''first1''', InoputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2'''~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OutputIterator '''result''', Compare '''comp''');~

''[[引数]]'''~
  '''first1''':  比較対象となる第 1 集合の先頭要素を指す InputIterator~
  '''last1''':  比較対象となる第 1 集合の終端要素の次を指す InputIterator~
  '''first2''':  比較対象となる第 2 集合の先頭要素を指す InputIterator~
  '''last2''':  比較対象となる第 2 集合の終端要素の次を指す InputIterator~
  '''result''':  結果集合の出力先の先頭要素を指す OutputIterator~
  '''comp''':  比較関数~

''[[返却値]]'''~
 結果集合の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first1''', '''last1''') で定義される第 1 集合および区間 ['''first2''', '''last2''') で定義される第 2 集合のいずれかにのみ存在しない要素を、'''result''' から始まる区間にコピーする。構築された集合は整列される。結果の区間は、元の集合の区間のいずれとも重なっていてはならない。

''計算量''~
 多くとも 2×( ('''last1''' - '''first1''') + ('''last2''' - '''first2''') ) - 1 回の比較を行う。

''参照''~
→ [[set_difference>#set_difference]]

&aname(push_heap);
***push_heap [#x14939e2]
[[ヒープ]]に要素を追加

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''push_heap''>#push_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''push_heap''>#push_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  [[ヒープ]]の先頭要素を指す RandomAccessIterator~
  '''last''':  [[ヒープ]]の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 '''last''' - 1 の位置にある要素を移動し、区間 ['''first''', '''last''') を[[ヒープ]]にする。元の区間 ['''first''', '''last''') は正しいヒープでなければならない。

''計算量''~
 多くとも log('''last''' - '''first''') 回の比較を行う。

''参照''~
→ [[pop_heap>#pop_heap]], [[make_heap>#make_heap]], [[sort_heap>#sort_heap]]

&aname(pop_heap);
***pop_heap [#f3723608]
[[ヒープ]]から要素を除去

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''pop_heap''>#pop_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''pop_heap''>#pop_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  [[ヒープ]]の先頭要素を指す RandomAccessIterator~
  '''last''':  [[ヒープ]]の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 '''first''' の位置にある要素と '''last''' - 1 の位置にある要素を交換し、区間 ['''first''', '''last''' - 1) を[[ヒープ]]にする。元の区間 ['''first''', '''last''') は正しいヒープでなければならない。

''計算量''~
 多くとも 2×log('''last''' - '''first''') 回の比較を行う。

''参照''~
→ [[push_heap>#push_heap]], [[make_heap>#make_heap]], [[sort_heap>#sort_heap]]

&aname(make_heap);
***make_heap [#i69b4b00]
[[ヒープ]]の構築

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''make_heap''>#make_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''make_heap''>#make_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  [[ヒープ]]の先頭要素を指す RandomAccessIterator~
  '''last''':  [[ヒープ]]の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') から[[ヒープ]]を構築する。

''計算量''~
 多くとも 3×('''last''' - '''first''') 回の比較を行う。

''参照''~
→ [[push_heap>#push_heap]], [[pop_heap>#pop_heap]], [[sort_heap>#sort_heap]]

&aname(sort_heap);
***sort_heap [#g3adba4b]
[[ヒープ]]の整列

''形式''~
&nbsp; template<class RandomAccessIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''sort_heap''>#sort_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''');~

&nbsp; template<class RandomAccessIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;void [[''sort_heap''>#sort_heap]](RandomAccessIterator '''first''', RandomAccessIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  [[ヒープ]]の先頭要素を指す RandomAccessIterator~
  '''last''':  [[ヒープ]]の終端要素の次を指す RandomAccessIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 なし

''解説''~
 区間 ['''first''', '''last''') で定義される[[ヒープ]]を整列する。整列は安定ではない。

''計算量''~
 多くとも '''N''' log '''N''' 回の比較を行う。ただし、'''N''' は '''last''' - '''first''' である。

''参照''~
→ [[push_heap>#push_heap]], [[pop_heap>#pop_heap]], [[make_heap>#make_heap]]

&aname(min);
***min [#u827ff67]
最小値

''形式''~
&nbsp; template<class T> const T& [[min>#min]](const T& '''a''', const T& '''b''');~

&nbsp; template<class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;const T& [[''min''>#min]](const T& '''a''', const T& '''b''', Compare '''comp''');~

''[[引数]]''~
  '''a''':  ~
  '''b''':  ~
  '''comp''':  比較関数。型 T は LessThanComparable かつ CopyConstructible~

''[[返却値]]''~
 最小値を返す。

''解説''~
 '''a''' と '''b''' を比較し、小さい方を返す。最初の形式では比較に [[< 演算子>関係演算子#less]]を、2 番目の形式では '''comp''' を使用する。'''a''' と '''b''' が等しい場合は '''a''' を返す。

''参照''~
→ [[max>#max]]

&aname(max);
***max [#ga5e2cd2]
最大値

''形式''~
&nbsp; template<class T> const T& [[max>#max]](const T& '''a''', const T& '''b''');~

&nbsp; template<class T, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;const T& [[''max''>#max]](const T& '''a''', const T& '''b''', Compare '''comp''');~

''[[引数]]''~
  '''a''':  ~
  '''b''':  ~
  '''comp''':  比較関数。型 T は LessThanComparable かつ CopyConstructible~

''[[返却値]]''~
 最大値を返す。

''解説''~
 '''a''' と '''b''' を比較し、大きい方を返す。最初の形式では比較に [[< 演算子>関係演算子#less]]を、2 番目の形式では '''comp''' を使用する。'''a''' と '''b''' が等しい場合は '''a''' を返す。

''参照''~
→ [[min>#min]]

&aname(min_element);
***min_element [#y1b39300]
最小要素の探索

''形式''~
&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''min_element''>#min_element]](ForwardIterator '''first''', ForwardIterator '''last''');~

&nbsp; template<class ForwardIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''min_element''>#min_element]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comapre '''comp''');~

''[[引数]]''~
  '''first''':  探索対象の先頭要素を指す ForwardIterator~
  '''last''':  探索対象の終端要素の次を指す ForwardIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 最小要素を指す[[反復子]]を返す。'''first''' == '''last''' の場合は '''last''' を返す。 

''解説''~
 区間 ['''first''', '''last''') 内の[[反復子]] '''iter1''' であり、任意の[[反復子]] '''iter2''' に対して、!(*'''iter2''' < *'''iter1''') または '''comp'''(*'''iter2''', *'''iter1''') == false が成立する最初の '''iter1''' を探索する。

''計算量''~
 ちょうど max( ('''last''' - '''first''') - 1, 0) ) 回比較を行う。

''参照''~
→ [[max_element>#max_element]]

&aname(max_element);
***max_element [#pc347cc9]
最大要素の探索

''形式''~
&nbsp; template<class ForwardIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''max_element''>#max_element]](ForwardIterator '''first''', ForwardIterator '''last''');~

&nbsp; template<class ForwardIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;ForwardIterator [[''max_element''>#max_element]](ForwardIterator '''first''', ForwardIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comapre '''comp''');~

''[[引数]]''~
  '''first''':  探索対象の先頭要素を指す ForwardIterator~
  '''last''':  探索対象の終端要素の次を指す ForwardIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 最大要素を指す[[反復子]]を返す。'''first''' == '''last''' の場合は '''last''' を返す。 

''解説''~
 区間 ['''first''', '''last''') 内の[[反復子]] '''iter1''' であり、任意の[[反復子]] '''iter2''' に対して、!(*'''iter1''' < *'''iter2''') または '''comp'''(*'''iter1''', *'''iter2''') == false が成立する最初の '''iter1''' を探索する。

''計算量''~
 ちょうど max( ('''last''' - '''first''') - 1, 0) ) 回比較を行う。

''参照''~
→ [[min_element>#min_element]]

&aname(lexicographical_compare);
***lexicographical_compare [#abf385f9]
辞書純比較

''形式''~
&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]]>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''lexicographical_compare''>#lexicographical_compare]](InputIterator1 '''first1''', InputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''');~

&nbsp; template<class [[InputIterator1>InputIterator]], class [[InputIterator2>InputIterator]], class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''lexicographical_compare''>#lexicographical_compare]](InputIterator1 '''first1''', InputIterator1 '''last1''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InputIterator2 '''first2''', InputIterator2 '''last2''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first1''':  比較対象となる一方の列の先頭要素を指す InputIterator~
  '''last1''':  比較対象となる一方の列の終端要素の次を指す InputIterator~
  '''first2''':  比較対象となる他方の列の先頭要素を指す InputIterator~
  '''last2''':  比較対象となる他方の列の終端要素の次を指す InputIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 区間 ['''first1''', '''last1''') の列が区間 ['''first2''', '''last2''') の列より小さい場合は true を、そうでなければ false を返す。 

''解説''~
 区間 ['''first1''', '''last1''') で定義される列と区間 ['''first2''', '''last2''')で定義される列を辞書順で比較する。最初の形式では、比較には [[< 演算子>関係演算子#less]]を使用し、2 番目の形式では '''comp''' を使用する。

''計算量''~
 多くとも 2×min( ('''last1''' - '''first1'''), ('''last2''' - '''first2''') ) 回の比較を行う。

&aname(next_permutation);
***next_permutation [#gb0306e2]
次の順列

''形式''~
&nbsp; template<class BidirectionalIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''next_permutation''>#next_permutation]](BidirectionalIterator '''first''', BidirectionalIterator '''last''');~

&nbsp; template<class BidirectionalIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''next_permutation''>#next_permutation]](BidirectionalIterator '''first''', BidirectionalIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  先頭要素を指す BidirectionalIterator~
  '''last''':  終端要素の次を指す BidirectionalIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 次の順列が存在する場合は true を、そうでなければ false を返す。

''解説''~
 区間 ['''first''', '''last''') の列を前の順列に変換する。次の順列とは、[[< 演算子>関係演算子#less]]または[[述語]] '''comp''' によって辞書順に整列した場合に直前の位置に来る列である。次の順列が存在しない場合、昇順に整列した列に変換する。

''計算量''~
 多くとも ('''last''' - '''first''') / 2 の交換を行う。

''参照''~
→ [[prev_permutation>#prev_permutation]]

&aname(prev_permutation);
***prev_permutation [#c0498b4c]
前の順列

''形式''~
&nbsp; template<class BidirectionalIterator>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''prev_permutation''>#prev_permutation]](BidirectionalIterator '''first''', BidirectionalIterator '''last''');~

&nbsp; template<class BidirectionalIterator, class Compare>~
&nbsp;&nbsp;&nbsp;&nbsp;bool [[''prev_permutation''>#prev_permutation]](BidirectionalIterator '''first''', BidirectionalIterator '''last''',~
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Compare '''comp''');~

''[[引数]]''~
  '''first''':  先頭要素を指す BidirectionalIterator~
  '''last''':  終端要素の次を指す BidirectionalIterator~
  '''comp''':  比較関数~

''[[返却値]]''~
 前の順列が存在する場合は true を、そうでなければ false を返す。

''解説''~
 区間 ['''first''', '''last''') の列を前の順列に変換する。前の順列とは、[[< 演算子>関係演算子#less]]または[[述語]] '''comp''' によって辞書順に整列した場合に直前の位置に来る列である。前の順列が存在しない場合には、降順に整列した列に変換する。

''計算量''~
 多くとも ('''last''' - '''first''') / 2 の交換を行う。

''参照''~
→ [[next_permutation>#next_permutation]]

トップ   一覧 単語検索   ヘルプ   最終更新のRSS
 ホーム | プロフィール | メール | ログイン | 管理
Copyright © 2005-2009 by TAKAGI Nobuhisa