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

*<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''');~

&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]
最後の部分列の探索

''形式''~
&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''');~

''[[引数]]''~
  '''first1''':  探索対象となる列の先頭要素を指す ForwardIterator~
  '''last1''':  探索対象となる列の終端要素の次を指す ForwardIterator~
  '''first2''':  探索する部分列の先頭要素を指す ForwardIterator~
  '''last2''':  探索する部分列の終端要素の次を指す ForwardIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''~
 探索に成功した場合、見つけた部分列の先頭要素を指す[[反復子]]を返す。失敗した場合には '''last1''' を返す。

''解説''~
 区間 ['''first1''', '''last1''' - ('''last2''' - '''first2''')) で定義される列から区間 ['''first2''', '''last2''') で定義される最後の部分列を探索する。具体的には、区間 ['''first1''', '''last1''' - ('''last2''' - '''first2''')) にある[[反復子]] '''iter''' および '''n''' < '''last2''' - '''first2''' である負でない '''n''' に対して、最初の形式では *('''iter''' + '''n''') == *('''first2''' + '''n''') が、2 番目の形式では '''pred'''(*('''iter''' + '''n'''), *('''first2''' + '''n''')) != false が成立する最後の '''iter''' を見つけ出す。

''計算量''~
 多くとも ('''last2''' - '''first2''')×('''last1''' - '''first1''' - ('''last2''' - '''first2''') + 1) 回比較または述語が適用が行われる。

''参照''~
→ [[serach>#search]]

&aname(find_first_of);
***find_first_of [#rb4923d6]
値集合のひとつに一致する要素の探索

''形式''~
&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''');~

''[[引数]]''~
  '''first1''':  探索対象となる列の先頭要素を指す ForwardIterator~
  '''last1''':  探索対象となる列の終端要素の次を指す ForwardIterator~
  '''first2''':  値集合の先頭要素を指す ForwardIterator~
  '''last2''':  値集合の終端要素の次を指す ForwardIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''~
 値集合のひとつに一致する要素が見つかった場合には、その要素を指す[[反復子]]を返す。それ以外の場合には '''last1''' を返す。

''解説''~
 区間 ['''first1''', '''last1''') で定義される列から、区間 ['''first2''', '''last2''') で定義される値集合のひとつに一致する要素を探索する。具体的には、区間 ['''first1''', '''last1''') にある[[反復子]] '''iter1''' 
および区間 ['''first2''', '''last2''') にある反復子 '''iter2''' に対して、最初の形式では *'''iter1''' == *'''iter2''' が、2 番目の形式では '''pred'''(*'''iter1''', *'''iter2''') != false が成立する最初の '''iter1''' を見つける。

''計算量''~
 多くとも ('''last1''' - '''first1''')×('''last2''' - '''first2''') 回比較または述語の適用が行われる。

&aname(adjacent_find);
***adjacent_find [#t89f9836]
隣接する同値要素の探索

''形式''~
&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''');~

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

''[[返却値]]''~
 隣接する同値の要素が見つかった場合、その要素を指す[[反復子]]を、見つからなかった場合は '''last''' を返す。

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' および '''iter''' + 1 に対して、最初の形式では *'''iter''' == *('''iter''' + 1) が、2 番目の形式では '''pred'''(*'''iter''', *('''iter''' + 1)) が成立する最初の '''iter''' を見つける。

''計算量''~
 ちょうど [[find>#find]]('''find''', '''last''', '''value''') - '''first''' 回比較または述語の適用が行われる。

&aname(count);
***count [#w6ea6c93]
要素の個数

''形式''~
&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''');~

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

''[[返却値]]''~
 計数した個数を返す。

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、*'''iter''' == '''value''' が成立する反復子の個数を数える。

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

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

&aname(count_if);
***count_if [#ea7c8a8d]
条件が成立する要素の個数

''形式''~
&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''');~

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

''[[返却値]]''~
 計数した個数を返す。

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、'''pred'''(*'''iter''', '''value''') != false が成立する反復子の個数を数える。

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

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

&aname(mismatch);
***mismatch [#k04f1b1d]
不一致要素の探索

''形式''~
&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''');~

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

''[[返却値]]''~
 不一致要素が見つかった場合、不一致要素を指す[[反復子]]の対を返す。不一致要素が見つからなければ それぞれの列の終端要素の次を指す反復子が格納される。

''解説''~
 区間 ['''first1''', '''last1''') で定義される列と区間 ['''first2''', '''first2''' + ('''last1''' - '''first1''')) の各要素を比較し、不一致要素を見つける。不一致要素が見つかった場合の[[返却値]]の .first は区間 ['''first1''', '''last1''') 側の、.second は区間 ['''first2''', '''first2''' + ('''last1''' - '''first1''')) 側の反復子が格納される。

''計算量''~
 多くとも '''last1''' - '''first1''' 回比較または述語の適用が行われる。

&aname(equal);
***equal [#x81cf4bd]
列の等価判定

''形式''~
&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''');~

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

''[[返却値]]''~
 比較対象の 2 つの列が等価の場合は true を、そうでなければ false を返す。

''解説''~
 区間 ['''first1''', '''last1''') で定義される列と区間 ['''first2''', '''first2''' + ('''last1''' - '''first1''')) で定義される列の各要素を比較する。具体的には、区間 ['''first1''', '''last1''') にある[[反復子]] '''iter''' に対して、最初の形式の場合は *'''iter''' == *('''first2''' + ('''iter''' - '''first1''')) が、2 番目の形式の場合は '''pred'''(*'''iter''', *('''first2''' + ('''iter''' - '''first1'''))) が成立する場合に 2 つの列が等価であると判定される。

''計算量''~
 多くとも '''last1''' - '''first1''' 回比較または述語の適用が行われる。

&aname(search);
***search [#t07772e4]
部分列の探索

''形式''~
&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''');~

''[[引数]]''~
  '''first1''':  探索対象となる列の先頭要素を指す ForwardIterator~
  '''last1''':  探索対象となる列の終端要素の次を指す ForwardIterator~
  '''first2''':  探索する部分列の先頭要素を指す ForwardIterator~
  '''last2''':  探索する部分列の終端要素の次を指す ForwardIterator~
  '''pred''':  [[述語]]~

''[[返却値]]''~
 探索に成功した場合、見つけた部分列の先頭要素を指す[[反復子]]を返す。失敗した場合には '''last1''' を返す。

''解説''~
 区間 ['''first1''', '''last1''' - ('''last2''' - '''first2''')) で定義される列から区間 ['''first2''', '''last2''') で定義される部分列を探索する。具体的には、区間 ['''first1''', '''last1''' - ('''last2''' - '''first2''')) にある[[反復子]] '''iter''' および '''n''' < '''last2''' - '''first2''' である負でない '''n''' に対して、最初の形式では *('''iter''' + '''n''') == *('''first2''' + '''n''') が、2 番目の形式では '''pred'''(*('''iter''' + '''n'''), *('''first2''' + '''n''')) != false が成立する最初の '''iter''' を見つけ出す。

''計算量''~
 多くとも ('''last1''' - '''first1''')×('''last2''' - '''first2''') 回比較または述語が適用が行われる。

''参照''~
→ [[serach_n>#search_n]], [[find_end>#find_end]]

&aname(search_n);
***search_n [#q4ac7b3d]
n 個の連続値からなる部分列の探索

''形式''~
&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''');~

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

''[[返却値]]''~
 探索に成功した場合、見つけた部分列の先頭要素を指す[[反復子]]を返す。失敗した場合には '''last1''' を返す。

''解説''~
 区間 ['''first''', '''last''' - '''count''') で定義される列から '''count''' 個の '''value''' からなる部分列を探索する。具体的には、区間 ['''first''', '''last''' - '''count''') にある[[反復子]] '''iter''' および '''n''' < '''count''' である負でない '''n''' に対して、最初の形式では *('''iter''' + '''n''') == '''value'''が、2 番目の形式では '''pred'''(*('''iter''' + '''n'''), '''value''') が成立する最初の '''iter''' を見つけ出す。

''計算量''~
 多くとも ('''last''' - '''first''')×'''count''' 回比較または述語が適用が行われる。

''参照''~
→ [[serach>#search]]

&aname(copy);
***copy [#x5c0f3f1]
列のコピー

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

''[[引数]]''~
  '''first''':  コピー元である列の先頭要素を指す InputIterator~
  '''last''':  コピー元である列の終端要素の次を指す InputIterator~
  '''result''':  コピー先である列の先頭要素を指す OutputIterator~

''[[返却値]]''~
 コピー先である列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') から区間 ['''result''', '''result''' + ('''last''' - '''first''')) へ、'''first''' から順に各要素をコピーする。'''result''' は区間  ['''first''', '''last''') にあってはならない。

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

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

&aname(copy_backward);
***copy_backward [#k70001bb]
列の逆方向コピー

''形式''~
&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''');~

''[[引数]]''~
  '''first''':  コピー元である列の先頭要素を指す BidirectionalIterator~
  '''last''':  コピー元である列の終端要素の次を指す BidirectionalIterator~
  '''result''':  コピー先である列の終端要素の次を指す BidirectionalIterator~

''[[返却値]]''~
 コピー先である列の終端要素の次を指す[[反復子]]を返す。

''解説''~
 区間 ['''first''', '''last''') から区間 ['''result''' - ('''last''' - '''first'''), '''result''') へ、'''last''' - 1 から順に '''first''' まで各要素をコピーする。'''result''' は区間  ['''first''', '''last''') にあってはならない。

''参考''~
'''last''' が区間 ['''result''' - ('''last''' - '''first'''), '''result''') にある場合には、[[copy 関数>#copy]]より copy_backward 関数を使う方がよい。

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

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

&aname(swap);
***swap [#u4a333ef]
値の交換

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

''[[引数]]''~
  '''a''':  交換対象のオブジェクトへの参照~
  '''b''':  交換対象のオブジェクトへの参照~

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

''解説''~
 2 つの[[実引数]] '''a''' および '''b''' に格納されている値を交換する。

''参照''~
→ [[swap_ranges>#swap_ranges]], [[iter_swap>#iter_swap]]

&aname(swap_ranges);
***swap_ranges [#i5a65398]
列の各要素の値交換

''形式''~
&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''');~

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

''[[返却値]]''~
 ('''first2''' + ('''last1''' - '''first1''')) を返す。

''解説''~
 区間 ['''first1''', '''last1''') で定義される列および区間 ['''first2''', '''first2''' + ('''last1''' - '''first1''')) で定義される列のそれぞれの要素の値を交換する。具体的には、'''n''' < ('''last1''' - '''first''') である負でない整数値 '''n''' に対して、[[swap>#swap]](*('''first1''' + '''n'''), *('''first2''' + '''n''')) を実行する。交換対象となる 2 つのの区間は重なっていてはならない。

''計算量''~
 ちょうど '''last1''' - '''first1''' 回の交換が行われる。

''参照''~
→ [[swap>#swap]], [[iter_swap>#iter_swap]]

&aname(iter_swap);
***iter_swap [#c4ca2591]
[[反復子]]が指す値の交換

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

''[[引数]]''~
  '''a''':  交換対象の[[反復子]]
  '''b''':  交換対象の[[反復子]]

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

''解説''~
 2 つの[[反復子]] '''a''' および '''b''' が指す値を交換する。

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

&aname(transform);
***transform [#b1b9f007]
各要素の変換

''形式''~
&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''');~

''[[引数]]''~
  '''first''':  対象列の先頭要素を指す InputIterator~
  '''last''':  対象列の終端要素の次を指す InputIterator~
  '''first1''':  二項変換で用いる第 1 項用の列の先頭要素を指す InputIterator~
  '''last1''':  二項変換で用いる第 1 項用の列の終端要素の次を指す InputIterator~
  '''first2''':  二項変換で用いる第 2 項用の列の先頭要素を指す InputIterator~
  '''result''':  出力先の列の先頭要素を指す OutputIterator~
  '''op''':  単項変換用の[[述語]]~
  '''binary_op''':  二項変換用の[[述語]]~

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

''解説''~
 最初の形式では、区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、'''op'''(*'''iter''') を適用した結果を、'''result''' から始まる列に出力する。'''result''' は '''first''' と同じであっても構わない。~
 2 番目の形式では、区間 ['''first1''', '''last1''') にある[[反復子]] '''iter1''' および区間 ['''first2''', '''first2''' + ('''last1''' - '''first1''')) にある反復子 '''iter2''' に対して、'''binary_op'''(*'''iter1''', *'''iter2''') を適用した結果を、'''result''' から始まる列に出力する。'''result''' は '''first1''' または '''first2''' と同じであっても構わない。

''計算量''~
 ちょうど '''last''' - '''first''' または '''last1''' - '''first1''' 回述語が適用される。

&aname(replace);
***replace [#t645b466]
要素の置換

''形式''
&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''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''old_value''':  置換対象の値。型 T は Assignable かつ EqualityComparable~
  '''new_value''':  置換後の値。型 T は Assignable かつ EqualityComparable~

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

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、*'''iter''' == '''old_value''' が成立する各要素に対して、'''new_value''' を代入する。

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

''参照''~
→ [[replace_if>#replace_if]], [[replace_copy>#replace_copy]], [[replace_copy_if>#replace_copy_if]]

&aname(replace_if);
***replace_if [#i8c14ac7]
条件が成立する要素の置換

''形式''~
&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''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''pred''':  [[述語]]~
  '''new_value''':  置換後の値。型 T は Assignable~

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

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、'''pred'''(*'''iter''', '''old_value''') != false が成立する各要素に対して、'''new_value''' を代入する。

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

&aname(replace_copy);
***replace_copy [#e001d375]
要素の置換コピー

''形式''~
&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''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''result''':  出力先となる列の先頭要素を指す OutputIterator~
  '''old_value''':  置換対象の値。型 T は Assignable かつ EqualityComparable~
  '''new_value''':  置換後の値。型 T は Assignable かつ EqualityComparable~

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

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、*'''iter''' == '''old_value''' が成立する場合は '''new_value''' を、それ以外は *'''iter''' を '''result''' から始まる列にコピーする。元の列と出力先の列は重なっていてはならない。

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

&aname(replace_copy_if);
***replace_copy_if [#g1b70e5d]
条件が成立する要素の置換コピー

''形式''~
&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''');~

''[[引数]]''~
  '''first''':  対象となる列の先頭要素を指す ForwardIterator~
  '''last''':  対象となる列の終端要素の次を指す ForwardIterator~
  '''result''':  出力先となる列の先頭要素を指す OutputIterator~
  '''pred''':  [[述語]]~
  '''new_value''':  置換後の値。型 T は Assignable~

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

''解説''~
 区間 ['''first''', '''last''') にある[[反復子]] '''iter''' に対して、'''pred'''(*'''iter''', '''old_value''') != false が成立する場合は '''new_value''' を、それ以外は *'''iter''' を '''result''' から始まる列にコピーする。元の列と出力先の列は重なっていてはならない。

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

&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 は[[汎整数型>基本型#integral]]に変換できなければならない。

''計算量''~
 ちょうど '''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''')
&htmlinsert(sup2.html); 
回の比較を行う。メモリが十分にある場合には '''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