mirror of
https://github.com/boostorg/range.git
synced 2026-04-29 10:34:14 +02:00
Boost.RangeEx merged into Boost.Range
[SVN r60897]
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Chapter 1. Range 2.0</title>
|
||||
<link rel="stylesheet" href="../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="next" href="range/introduction.html" title="Introduction">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav"><a accesskey="n" href="range/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
|
||||
<div class="chapter" title="Chapter 1. Range 2.0">
|
||||
<div class="titlepage"><div>
|
||||
<div><h2 class="title">
|
||||
<a name="range"></a>Chapter 1. Range 2.0</h2></div>
|
||||
<div><div class="author"><h3 class="author">
|
||||
<span class="firstname">Thorsten</span> <span class="surname">Ottosen</span>
|
||||
</h3></div></div>
|
||||
<div><div class="author"><h3 class="author">
|
||||
<span class="firstname">Neil</span> <span class="surname">Groves</span>
|
||||
</h3></div></div>
|
||||
<div><p class="copyright">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves</p></div>
|
||||
<div><div class="legalnotice" title="Legal Notice">
|
||||
<a name="id3156350"></a><p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></div>
|
||||
</div></div>
|
||||
<div class="toc">
|
||||
<p><b>Table of Contents</b></p>
|
||||
<dl>
|
||||
<dt><span class="section"><a href="range/introduction.html">Introduction</a></span></dt>
|
||||
<dt><span class="section"><a href="range/concepts.html"> Range Concepts</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/concepts/overview.html">Overview</a></span></dt>
|
||||
<dt><span class="section"><a href="range/concepts/single_pass_range.html">Single Pass Range</a></span></dt>
|
||||
<dt><span class="section"><a href="range/concepts/forward_range.html">Forward Range</a></span></dt>
|
||||
<dt><span class="section"><a href="range/concepts/bidirectional_range.html">Bidirectional Range</a></span></dt>
|
||||
<dt><span class="section"><a href="range/concepts/random_access_range.html">Random Access Range</a></span></dt>
|
||||
<dt><span class="section"><a href="range/concepts/concept_checking.html">Concept Checking</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/reference.html">Reference</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/reference/overview.html">Overview</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/synopsis.html">Synopsis</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/semantics.html">Semantics</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/reference/semantics/metafunctions.html">Metafunctions</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/semantics/functions.html">Functions</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/reference/adaptors.html"> Range Adaptors</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/reference/adaptors/adaptors_introduction.html"> Introduction
|
||||
and motivation</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/adaptors/adaptors_synopsis.html"> Synopsis</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/adaptors/adaptors_general_requirements.html">
|
||||
General Requirements</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/adaptors/adaptors_reference.html"> Reference</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/reference/algorithms.html"> Range Algorithm</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/reference/algorithms/range_algorithm_introduction.html">
|
||||
Introduction and motivation</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/algorithms/range_algorithm_mutating_algorithms.html">
|
||||
Mutating algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/algorithms/range_algorithm_non_mutating_algorithms.html">
|
||||
Non-mutating algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/algorithms/set_algorithms.html"> Set algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/algorithms/heap_algorithms.html"> Heap algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/algorithms/permutation_algorithms.html">
|
||||
Permutation algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/algorithms/range_algorithm_new_algorithms.html">
|
||||
New algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/algorithms/range_numeric.html"> Numeric
|
||||
algorithms</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/reference/ranges.html"> Provided Ranges</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/reference/ranges/counting_range.html"> counting_range</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/ranges/istream_range.html"> istream_range</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/ranges/irange.html"> irange</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/reference/extending.html"> Extending the library</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/reference/extending/method_1.html"> Method 1: provide
|
||||
member functions and nested types</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/extending/method_2.html"> Method 2: provide
|
||||
free-standing functions and specialize metafunctions</a></span></dt>
|
||||
<dt><span class="section"><a href="range/reference/extending/method_3.html"> Method 3: provide
|
||||
range adaptor implementations</a></span></dt>
|
||||
</dl></dd>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/utilities.html"> Utilities</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/utilities/iterator_range.html"> Class <code class="computeroutput"><span class="identifier">iterator_range</span></code></a></span></dt>
|
||||
<dt><span class="section"><a href="range/utilities/sub_range.html"> Class <code class="computeroutput"><span class="identifier">sub_range</span></code></a></span></dt>
|
||||
<dt><span class="section"><a href="range/utilities/join.html"> Function join</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/style_guide.html"> Terminology and style guidelines</a></span></dt>
|
||||
<dt><span class="section"><a href="range/library_headers.html">Library Headers</a></span></dt>
|
||||
<dt><span class="section"><a href="range/examples.html">Examples</a></span></dt>
|
||||
<dt><span class="section"><a href="range/mfc_atl.html"> MFC/ATL (courtesy of Shunsuke Sogame)</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/mfc_atl/requirements.html"> Requirements</a></span></dt>
|
||||
<dt><span class="section"><a href="range/mfc_atl/mfc_ranges.html"> MFC Ranges</a></span></dt>
|
||||
<dt><span class="section"><a href="range/mfc_atl/atl_ranges.html"> ATL Ranges</a></span></dt>
|
||||
<dt><span class="section"><a href="range/mfc_atl/const_ranges.html"> const Ranges</a></span></dt>
|
||||
<dt><span class="section"><a href="range/mfc_atl/references.html"> References</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/upgrade.html"> Upgrade version of Boost.Range</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="range/upgrade/upgrade_from_1_42.html"> Upgrade from version
|
||||
1.42</a></span></dt>
|
||||
<dt><span class="section"><a href="range/upgrade/upgrade_from_1_34.html"> Upgrade from version
|
||||
1.34</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="range/portability.html">Portability</a></span></dt>
|
||||
<dt><span class="section"><a href="range/faq.html">FAQ</a></span></dt>
|
||||
<dt><span class="section"><a href="range/history_ack.html"> History and Acknowledgement</a></span></dt>
|
||||
</dl>
|
||||
</div>
|
||||
<p>
|
||||
Boost.Range is a collection of concepts and utilities that are particularly useful
|
||||
for specifying and implementing generic algorithms.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: March 28, 2010 at 14:28:09 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav"><a accesskey="n" href="range/introduction.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a></div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,132 @@
|
||||
index.html
|
||||
range/introduction.html
|
||||
range/concepts.html
|
||||
range/concepts/overview.html
|
||||
range/concepts/single_pass_range.html
|
||||
range/concepts/forward_range.html
|
||||
range/concepts/bidirectional_range.html
|
||||
range/concepts/random_access_range.html
|
||||
range/concepts/concept_checking.html
|
||||
range/reference.html
|
||||
range/reference/overview.html
|
||||
range/reference/synopsis.html
|
||||
range/reference/semantics.html
|
||||
range/reference/semantics/metafunctions.html
|
||||
range/reference/semantics/functions.html
|
||||
range/reference/adaptors.html
|
||||
range/reference/adaptors/adaptors_introduction.html
|
||||
range/reference/adaptors/adaptors_synopsis.html
|
||||
range/reference/adaptors/adaptors_general_requirements.html
|
||||
range/reference/adaptors/adaptors_reference.html
|
||||
range/reference/adaptors/adaptors_reference/adjacent_filtered.html
|
||||
range/reference/adaptors/adaptors_reference/copied.html
|
||||
range/reference/adaptors/adaptors_reference/filtered.html
|
||||
range/reference/adaptors/adaptors_reference/indexed.html
|
||||
range/reference/adaptors/adaptors_reference/indirected.html
|
||||
range/reference/adaptors/adaptors_reference/map_keys.html
|
||||
range/reference/adaptors/adaptors_reference/map_values.html
|
||||
range/reference/adaptors/adaptors_reference/replaced.html
|
||||
range/reference/adaptors/adaptors_reference/replaced_if.html
|
||||
range/reference/adaptors/adaptors_reference/reversed.html
|
||||
range/reference/adaptors/adaptors_reference/sliced.html
|
||||
range/reference/adaptors/adaptors_reference/strided.html
|
||||
range/reference/adaptors/adaptors_reference/tokenized.html
|
||||
range/reference/adaptors/adaptors_reference/transformed.html
|
||||
range/reference/adaptors/adaptors_reference/uniqued.html
|
||||
range/reference/algorithms.html
|
||||
range/reference/algorithms/range_algorithm_introduction.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/copy.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/copy_backward.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/fill.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/generate.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/inplace_merge.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/merge.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/nth_element.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/partial_sort.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/partition.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/random_shuffle.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/remove.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/remove_if.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/replace.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/replace_if.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/rotate.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/sort.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/stable_partition.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/stable_sort.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/transform.html
|
||||
range/reference/algorithms/range_algorithm_mutating_algorithms/unique.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/adjacent_find.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/binary_search.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/count.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/equal.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/equal_range.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/for_each.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/find.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/find_end.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/find_first_of.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/find_if.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/lexicographical_compare.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/lower_bound.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/max_element.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/min_element.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/mismatch.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/search.html
|
||||
range/reference/algorithms/range_algorithm_non_mutating_algorithms/upper_bound.html
|
||||
range/reference/algorithms/set_algorithms.html
|
||||
range/reference/algorithms/set_algorithms/includes.html
|
||||
range/reference/algorithms/set_algorithms/set_union.html
|
||||
range/reference/algorithms/set_algorithms/set_intersection.html
|
||||
range/reference/algorithms/set_algorithms/set_difference.html
|
||||
range/reference/algorithms/set_algorithms/set_symmetric_difference.html
|
||||
range/reference/algorithms/heap_algorithms.html
|
||||
range/reference/algorithms/heap_algorithms/push_heap.html
|
||||
range/reference/algorithms/heap_algorithms/pop_heap.html
|
||||
range/reference/algorithms/heap_algorithms/make_heap.html
|
||||
range/reference/algorithms/permutation_algorithms.html
|
||||
range/reference/algorithms/permutation_algorithms/next_permutation.html
|
||||
range/reference/algorithms/permutation_algorithms/prev_permutation.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms/erase.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms/for_each.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms/insert.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms/overwrite.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms/push_back.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms/push_front.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms/remove_erase.html
|
||||
range/reference/algorithms/range_algorithm_new_algorithms/remove_erase_if.html
|
||||
range/reference/algorithms/range_numeric.html
|
||||
range/reference/algorithms/range_numeric/accumulate.html
|
||||
range/reference/algorithms/range_numeric/adjacent_difference.html
|
||||
range/reference/algorithms/range_numeric/inner_product.html
|
||||
range/reference/algorithms/range_numeric/partial_sum.html
|
||||
range/reference/ranges.html
|
||||
range/reference/ranges/counting_range.html
|
||||
range/reference/ranges/istream_range.html
|
||||
range/reference/ranges/irange.html
|
||||
range/reference/extending.html
|
||||
range/reference/extending/method_1.html
|
||||
range/reference/extending/method_2.html
|
||||
range/reference/extending/method_3.html
|
||||
range/reference/extending/method_3/method_3_1.html
|
||||
range/reference/extending/method_3/method_3_2.html
|
||||
range/utilities.html
|
||||
range/utilities/iterator_range.html
|
||||
range/utilities/sub_range.html
|
||||
range/utilities/join.html
|
||||
range/style_guide.html
|
||||
range/library_headers.html
|
||||
range/examples.html
|
||||
range/mfc_atl.html
|
||||
range/mfc_atl/requirements.html
|
||||
range/mfc_atl/mfc_ranges.html
|
||||
range/mfc_atl/atl_ranges.html
|
||||
range/mfc_atl/const_ranges.html
|
||||
range/mfc_atl/references.html
|
||||
range/upgrade.html
|
||||
range/upgrade/upgrade_from_1_42.html
|
||||
range/upgrade/upgrade_from_1_34.html
|
||||
range/portability.html
|
||||
range/faq.html
|
||||
range/history_ack.html
|
||||
@@ -0,0 +1,51 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Concepts</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="introduction.html" title="Introduction">
|
||||
<link rel="next" href="concepts/overview.html" title="Overview">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/overview.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Concepts">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.concepts"></a><a class="link" href="concepts.html" title="Range Concepts"> Range Concepts</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="concepts/overview.html">Overview</a></span></dt>
|
||||
<dt><span class="section"><a href="concepts/single_pass_range.html">Single Pass Range</a></span></dt>
|
||||
<dt><span class="section"><a href="concepts/forward_range.html">Forward Range</a></span></dt>
|
||||
<dt><span class="section"><a href="concepts/bidirectional_range.html">Bidirectional Range</a></span></dt>
|
||||
<dt><span class="section"><a href="concepts/random_access_range.html">Random Access Range</a></span></dt>
|
||||
<dt><span class="section"><a href="concepts/concept_checking.html">Concept Checking</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="introduction.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/overview.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,305 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Bidirectional Range</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../concepts.html" title="Range Concepts">
|
||||
<link rel="prev" href="forward_range.html" title="Forward Range">
|
||||
<link rel="next" href="random_access_range.html" title="Random Access Range">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="forward_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="random_access_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Bidirectional Range">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.concepts.bidirectional_range"></a><a class="link" href="bidirectional_range.html" title="Bidirectional Range">Bidirectional Range</a>
|
||||
</h3></div></div></div>
|
||||
<a name="range.concepts.bidirectional_range.notation"></a><h5>
|
||||
<a name="id3168757"></a>
|
||||
<a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.notation">Notation</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">X</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A type that is a model of <a class="link" href="bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">a</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Object of type X.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.bidirectional_range.description"></a><h5>
|
||||
<a name="id3168855"></a>
|
||||
<a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
This concept provides access to iterators that traverse in both directions
|
||||
(forward and reverse). The <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> iterator must meet all of the requirements
|
||||
of <a href="../../../../libs/iterator/doc/new-iter-concepts.html#bidirectional-traversal-iterators-lib-bidirectional-traversal-iterators" target="_top">Bidirectional
|
||||
Traversal Iterator</a>.
|
||||
</p>
|
||||
<a name="range.concepts.bidirectional_range.refinement_of"></a><h5>
|
||||
<a name="id3168920"></a>
|
||||
<a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.refinement_of">Refinement
|
||||
of</a>
|
||||
</h5>
|
||||
<p>
|
||||
<a class="link" href="forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
<a name="range.concepts.bidirectional_range.associated_types"></a><h5>
|
||||
<a name="id3168949"></a>
|
||||
<a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.associated_types">Associated
|
||||
types</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Reverse Iterator type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_reverse_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The type of iterator used to iterate through a Range's elements
|
||||
in reverse order. The iterator's value type is expected to be the
|
||||
Range's value type. A conversion from the reverse iterator type
|
||||
to the const reverse iterator type must exist.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Const reverse iterator type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_reverse_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A type of reverse iterator that may be used to examine, but not
|
||||
to modify, a Range's elements.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.bidirectional_range.valid_expressions"></a><h5>
|
||||
<a name="id3169115"></a>
|
||||
<a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.valid_expressions">Valid
|
||||
expressions</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Name
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Expression
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Return type
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Semantics
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Beginning of range
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">rbegin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_reverse_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> if <code class="computeroutput"><span class="identifier">a</span></code>
|
||||
is mutable <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_reverse_iterator</span><span class="special"><</span><span class="keyword">const</span>
|
||||
<span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> otherwise.
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Equivalent to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_reverse_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">))</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
End of range
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">rend</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_reverse_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> if <code class="computeroutput"><span class="identifier">a</span></code>
|
||||
is mutable, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_reverse_iterator</span><span class="special"><</span><span class="keyword">const</span>
|
||||
<span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> otherwise.
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Equivalent to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_reverse_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">))</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.bidirectional_range.complexity_guarantees"></a><h5>
|
||||
<a name="id3169594"></a>
|
||||
<a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.complexity_guarantees">Complexity
|
||||
guarantees</a>
|
||||
</h5>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">rbegin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> has
|
||||
the same complexity as <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> and
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">rend</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> has the same complexity as <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> from
|
||||
<a class="link" href="forward_range.html" title="Forward Range">Forward Range</a>.
|
||||
</p>
|
||||
<a name="range.concepts.bidirectional_range.invariants"></a><h5>
|
||||
<a name="id3169745"></a>
|
||||
<a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.invariants">Invariants</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Valid reverse range
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
For any Bidirectional Range a, <code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">rbegin</span><span class="special">(</span><span class="identifier">a</span><span class="special">),</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">rend</span><span class="special">(</span><span class="identifier">a</span><span class="special">))</span></code>
|
||||
is a valid range, that is, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">rend</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> is reachable from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">rbegin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
in a finite number of increments.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Completeness
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">An</span> <span class="identifier">algorithm</span>
|
||||
<span class="identifier">that</span> <span class="identifier">iterates</span>
|
||||
<span class="identifier">through</span> <span class="identifier">the</span>
|
||||
<span class="identifier">range</span> </code>[boost::rbegin(a),boost::rend(a))<code class="computeroutput">
|
||||
<span class="identifier">will</span> <span class="identifier">pass</span>
|
||||
<span class="identifier">through</span> <span class="identifier">every</span>
|
||||
<span class="identifier">element</span> <span class="identifier">of</span>
|
||||
</code>a`.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.bidirectional_range.see_also"></a><h5>
|
||||
<a name="id3170015"></a>
|
||||
<a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.see_also">See also</a>
|
||||
</h5>
|
||||
<p>
|
||||
<a class="link" href="../reference/semantics/metafunctions.html" title="Metafunctions">Implementation of
|
||||
metafunctions</a>
|
||||
</p>
|
||||
<p>
|
||||
<a class="link" href="../reference/semantics/functions.html" title="Functions">Implementation of functions</a>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="forward_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="random_access_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,108 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Concept Checking</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../concepts.html" title="Range Concepts">
|
||||
<link rel="prev" href="random_access_range.html" title="Random Access Range">
|
||||
<link rel="next" href="../reference.html" title="Reference">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="random_access_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Concept Checking">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.concepts.concept_checking"></a><a class="link" href="concept_checking.html" title="Concept Checking">Concept Checking</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
Each of the range concepts has a corresponding concept checking class in
|
||||
the file <a href="../../../../boost/range/concepts.hpp" target="_top"><code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code></a>.
|
||||
These classes may be used in conjunction with the <a href="../../../../libs/concept_check/index.html" target="_top">Boost
|
||||
Concept Check library</a> to ensure that the type of a template parameter
|
||||
is compatible with a range concept. If not, a meaningful compile time error
|
||||
is generated. Checks are provided for the range concepts related to iterator
|
||||
traversal categories. For example, the following line checks that the type
|
||||
<code class="computeroutput"><span class="identifier">T</span></code> models the <a class="link" href="forward_range.html" title="Forward Range">Forward
|
||||
Range</a> concept.
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">BOOST_CONCEPT_ASSERT</span><span class="special">((</span> <span class="identifier">ForwardRangeConcept</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">));</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
An additional concept check is required for the value access property of
|
||||
the range based on the range's iterator type. For example to check for a
|
||||
ForwardReadableRange, the following code is required.
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">BOOST_CONCEPT_ASSERT</span><span class="special">((</span> <span class="identifier">ForwardRangeConcept</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">));</span>
|
||||
<span class="identifier">BOOST_CONCEPT_ASSERT</span><span class="special">((</span> <span class="identifier">ReadableIteratorConcept</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span> <span class="special">));</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
The following range concept checking classes are provided.
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Class SinglePassRangeConcept checks for <a class="link" href="single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Class ForwardRangeConcept checks for <a class="link" href="forward_range.html" title="Forward Range">Forward
|
||||
Range</a>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Class BidirectionalRangeConcept checks for <a class="link" href="bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Class RandomAccessRangeConcept checks for <a class="link" href="random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a>
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.concepts.concept_checking.see_also"></a><h5>
|
||||
<a name="id3171025"></a>
|
||||
<a class="link" href="concept_checking.html#range.concepts.concept_checking.see_also">See also</a>
|
||||
</h5>
|
||||
<p>
|
||||
<a class="link" href="../style_guide.html" title="Terminology and style guidelines">Range Terminology and style guidelines</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="../../../../libs/iterator/doc/iterator_concepts.html" target="_top">Iterator concepts</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="../../../../libs/concept_check/index.html" target="_top">Boost Concept Check library</a>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="random_access_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,159 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Forward Range</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../concepts.html" title="Range Concepts">
|
||||
<link rel="prev" href="single_pass_range.html" title="Single Pass Range">
|
||||
<link rel="next" href="bidirectional_range.html" title="Bidirectional Range">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="single_pass_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bidirectional_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Forward Range">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.concepts.forward_range"></a><a class="link" href="forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</h3></div></div></div>
|
||||
<a name="range.concepts.forward_range.notation"></a><h5>
|
||||
<a name="id3168350"></a>
|
||||
<a class="link" href="forward_range.html#range.concepts.forward_range.notation">Notation</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">X</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A type that is a model of <a class="link" href="forward_range.html" title="Forward Range">Forward
|
||||
Range</a>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">a</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Object of type X.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.forward_range.description"></a><h5>
|
||||
<a name="id3168446"></a>
|
||||
<a class="link" href="forward_range.html#range.concepts.forward_range.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
A range <code class="computeroutput"><span class="identifier">X</span></code> where <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> is a model of <a href="../../../../libs/iterator/doc/new-iter-concepts.html#forward-traversal-iterators-lib-forward-traversal-iterators" target="_top">Forward
|
||||
Traversal Iterator</a>.
|
||||
</p>
|
||||
<a name="range.concepts.forward_range.refinement_of"></a><h5>
|
||||
<a name="id3168518"></a>
|
||||
<a class="link" href="forward_range.html#range.concepts.forward_range.refinement_of">Refinement of</a>
|
||||
</h5>
|
||||
<p>
|
||||
<a class="link" href="single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
|
||||
</p>
|
||||
<a name="range.concepts.forward_range.associated_types"></a><h5>
|
||||
<a name="id3168547"></a>
|
||||
<a class="link" href="forward_range.html#range.concepts.forward_range.associated_types">Associated
|
||||
types</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Distance type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A signed integral type used to represent the distance between two
|
||||
of the Range's iterators. This type must be the same as the iterator's
|
||||
distance type.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Size type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_size</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
An unsigned integral type that can represent any nonnegative value
|
||||
of the Range's distance type.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.forward_range.see_also"></a><h5>
|
||||
<a name="id3168704"></a>
|
||||
<a class="link" href="forward_range.html#range.concepts.forward_range.see_also">See also</a>
|
||||
</h5>
|
||||
<p>
|
||||
<a class="link" href="../reference/semantics/metafunctions.html" title="Metafunctions">Implementation of
|
||||
metafunctions</a>
|
||||
</p>
|
||||
<p>
|
||||
<a class="link" href="../reference/semantics/functions.html" title="Functions">Implementation of functions</a>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="single_pass_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="bidirectional_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,79 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Overview</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../concepts.html" title="Range Concepts">
|
||||
<link rel="prev" href="../concepts.html" title="Range Concepts">
|
||||
<link rel="next" href="single_pass_range.html" title="Single Pass Range">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../concepts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="single_pass_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Overview">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.concepts.overview"></a><a class="link" href="overview.html" title="Overview">Overview</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
A Range is a <span class="bold"><strong><span class="emphasis"><em>concept</em></span></strong></span>
|
||||
similar to the STL <a href="http://www.sgi.com/Technology/STL/Container.html" target="_top">Container</a>
|
||||
concept. A Range provides iterators for accessing a half-open range <code class="computeroutput"><span class="special">[</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">one_past_last</span><span class="special">)</span></code> of elements and provides information about
|
||||
the number of elements in the Range. However, a Range has fewer requirements
|
||||
than a Container.
|
||||
</p>
|
||||
<p>
|
||||
The motivation for the Range concept is that there are many useful Container-like
|
||||
types that do not meet the full requirements of Container, and many algorithms
|
||||
that can be written with this reduced set of requirements. In particular,
|
||||
a Range does not necessarily
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
own the elements that can be accessed through it,
|
||||
</li>
|
||||
<li class="listitem">
|
||||
have copy semantics,
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
Because of the second requirement, a Range object must be passed by (const
|
||||
or non-const) reference in generic code.
|
||||
</p>
|
||||
<p>
|
||||
The operations that can be performed on a Range is dependent on the <a href="../../../../iterator/doc/new-iter-concepts.html#iterator-traversal-concepts-lib-iterator-traversal" target="_top">traversal
|
||||
category</a> of the underlying iterator type. Therefore the range concepts
|
||||
are named to reflect which traversal category its iterators support. See
|
||||
also terminology and style guidelines. for more information about naming
|
||||
of ranges.
|
||||
</p>
|
||||
<p>
|
||||
The concepts described below specifies associated types as <a href="../../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">metafunctions</a>
|
||||
and all functions as free-standing functions to allow for a layer of indirection.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../concepts.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="single_pass_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,187 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Random Access Range</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../concepts.html" title="Range Concepts">
|
||||
<link rel="prev" href="bidirectional_range.html" title="Bidirectional Range">
|
||||
<link rel="next" href="concept_checking.html" title="Concept Checking">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="bidirectional_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concept_checking.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Random Access Range">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.concepts.random_access_range"></a><a class="link" href="random_access_range.html" title="Random Access Range">Random Access Range</a>
|
||||
</h3></div></div></div>
|
||||
<a name="range.concepts.random_access_range.description"></a><h5>
|
||||
<a name="id3170068"></a>
|
||||
<a class="link" href="random_access_range.html#range.concepts.random_access_range.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
A range <code class="computeroutput"><span class="identifier">X</span></code> where <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> is a model of <a href="../../../../libs/iterator/doc/new-iter-concepts.html#random-access-traversal-iterators-lib-random-access-traversal-iterators" target="_top">Random
|
||||
Access Traversal Iterator</a>.
|
||||
</p>
|
||||
<a name="range.concepts.random_access_range.refinement_of"></a><h5>
|
||||
<a name="id3170140"></a>
|
||||
<a class="link" href="random_access_range.html#range.concepts.random_access_range.refinement_of">Refinement
|
||||
of</a>
|
||||
</h5>
|
||||
<p>
|
||||
<a class="link" href="bidirectional_range.html" title="Bidirectional Range">Bidirectional Range</a>
|
||||
</p>
|
||||
<a name="range.concepts.random_access_range.valid_expressions"></a><h5>
|
||||
<a name="id3170168"></a>
|
||||
<a class="link" href="random_access_range.html#range.concepts.random_access_range.valid_expressions">Valid
|
||||
expressions</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Name
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Expression
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Return type
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody><tr>
|
||||
<td>
|
||||
<p>
|
||||
Size of range
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_size</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.random_access_range.expression_semantics"></a><h5>
|
||||
<a name="id3170315"></a>
|
||||
<a class="link" href="random_access_range.html#range.concepts.random_access_range.expression_semantics">Expression
|
||||
semantics</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Expression
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Semantics
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Postcondition
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody><tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Returns the size of the Range, that is, its number of elements.
|
||||
Note <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span>
|
||||
<span class="special">==</span> <span class="number">0u</span></code>
|
||||
is equivalent to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">empty</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span>
|
||||
<span class="special">>=</span> <span class="number">0</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.random_access_range.complexity_guarantees"></a><h5>
|
||||
<a name="id3170541"></a>
|
||||
<a class="link" href="random_access_range.html#range.concepts.random_access_range.complexity_guarantees">Complexity
|
||||
guarantees</a>
|
||||
</h5>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> is completes in amortized constant time.
|
||||
</p>
|
||||
<a name="range.concepts.random_access_range.invariants"></a><h5>
|
||||
<a name="id3170595"></a>
|
||||
<a class="link" href="random_access_range.html#range.concepts.random_access_range.invariants">Invariants</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody><tr>
|
||||
<td>
|
||||
<p>
|
||||
Range size
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
is equal to the <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> - <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="bidirectional_range.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concept_checking.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,349 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Single Pass Range</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../concepts.html" title="Range Concepts">
|
||||
<link rel="prev" href="overview.html" title="Overview">
|
||||
<link rel="next" href="forward_range.html" title="Forward Range">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="overview.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="forward_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Single Pass Range">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.concepts.single_pass_range"></a><a class="link" href="single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
|
||||
</h3></div></div></div>
|
||||
<a name="range.concepts.single_pass_range.notation"></a><h5>
|
||||
<a name="id3166972"></a>
|
||||
<a class="link" href="single_pass_range.html#range.concepts.single_pass_range.notation">Notation</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">X</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A type that is a model of <a class="link" href="single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">a</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Object of type X.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.single_pass_range.description"></a><h5>
|
||||
<a name="id3167074"></a>
|
||||
<a class="link" href="single_pass_range.html#range.concepts.single_pass_range.description">Description</a>
|
||||
</h5>
|
||||
<p>
|
||||
A range <code class="computeroutput"><span class="identifier">X</span></code> where <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> is a model of <a href="../../../../libs/iterator/doc/new-iter-concepts.html#singls-pass-iterators-lib-single-pass-iterators" target="_top">Single
|
||||
Pass Iterator</a>.
|
||||
</p>
|
||||
<a name="range.concepts.single_pass_range.associated_types"></a><h5>
|
||||
<a name="id3167146"></a>
|
||||
<a class="link" href="single_pass_range.html#range.concepts.single_pass_range.associated_types">Associated
|
||||
types</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Iterator type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
The type of iterator used to iterate through a Range's elements.
|
||||
The iterator's value type is expected to be the Range's value type.
|
||||
A conversion from the iterator type to the <code class="computeroutput"><span class="keyword">const</span></code>
|
||||
iterator type must exist.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Const iterator type
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
A type of iterator that may be used to examine, but not to modify,
|
||||
a Range's elements.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.single_pass_range.valid_expressions"></a><h5>
|
||||
<a name="id3167320"></a>
|
||||
<a class="link" href="single_pass_range.html#range.concepts.single_pass_range.valid_expressions">Valid
|
||||
expressions</a>
|
||||
</h5>
|
||||
<p>
|
||||
The following expressions must be valid.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Name
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Expression
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Return type
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Beginning of range
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> if <code class="computeroutput"><span class="identifier">a</span></code>
|
||||
is mutable, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span>
|
||||
<span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> otherwise
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
End of range
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> if <code class="computeroutput"><span class="identifier">a</span></code>
|
||||
is mutable, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span>
|
||||
<span class="identifier">X</span><span class="special">>::</span><span class="identifier">type</span></code> otherwise
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.single_pass_range.expression_semantics"></a><h5>
|
||||
<a name="id3167654"></a>
|
||||
<a class="link" href="single_pass_range.html#range.concepts.single_pass_range.expression_semantics">Expression
|
||||
semantics</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Expression
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Semantics
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Postcondition
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Returns an iterator pointing to the first element in the Range.
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
is either dereferenceable or past-the-end. It is past-the-end if
|
||||
and only if <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span> <span class="special">==</span> <span class="number">0</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Returns an iterator pointing one past the last element in the Range.
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
is past-the-end.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.single_pass_range.complexity_guarantees"></a><h5>
|
||||
<a name="id3167925"></a>
|
||||
<a class="link" href="single_pass_range.html#range.concepts.single_pass_range.complexity_guarantees">Complexity
|
||||
guarantees</a>
|
||||
</h5>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> is at most amortized linear time, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> is amortized
|
||||
constant time. For most practical purposes, one can expect both to be amortized
|
||||
constant time.
|
||||
</p>
|
||||
<a name="range.concepts.single_pass_range.invariants"></a><h5>
|
||||
<a name="id3168008"></a>
|
||||
<a class="link" href="single_pass_range.html#range.concepts.single_pass_range.invariants">Invariants</a>
|
||||
</h5>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Valid range
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
For any Range <code class="computeroutput"><span class="identifier">a</span></code>,
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">),</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">))</span></code> is a valid range, that is, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>
|
||||
is reachable from <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code> in a finite number of increments.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Completeness
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
An algorithm that iterates through the range <code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">a</span><span class="special">),</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">a</span><span class="special">))</span></code>
|
||||
will pass through every element of <code class="computeroutput"><span class="identifier">a</span></code>.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.concepts.single_pass_range.see_also"></a><h5>
|
||||
<a name="id3168279"></a>
|
||||
<a class="link" href="single_pass_range.html#range.concepts.single_pass_range.see_also">See also</a>
|
||||
</h5>
|
||||
<p>
|
||||
<a class="link" href="../reference/extending.html" title="Extending the library">Extending the library for UDTs</a>
|
||||
</p>
|
||||
<p>
|
||||
<a class="link" href="../reference/semantics/metafunctions.html" title="Metafunctions">Implementation of
|
||||
metafunctions</a>
|
||||
</p>
|
||||
<p>
|
||||
<a class="link" href="../reference/semantics/functions.html" title="Functions">Implementation of functions</a>
|
||||
</p>
|
||||
<p>
|
||||
<a href="http://www.sgi.com/Technology/STL/Container.html" target="_top">Container</a>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="overview.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="forward_range.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,62 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Examples</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="library_headers.html" title="Library Headers">
|
||||
<link rel="next" href="mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="library_headers.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Examples">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.examples"></a><a class="link" href="examples.html" title="Examples">Examples</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
Some examples are given in the accompanying test files:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<a href="http://www.boost.org/libs/range/test/string.cpp" target="_top">string.cpp</a>
|
||||
shows how to implement a container version of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">()</span></code> that works with <code class="computeroutput"><span class="keyword">char</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">[]</span></code>,<code class="computeroutput"><span class="keyword">char</span><span class="special">*</span></code>,<code class="computeroutput"><span class="keyword">wchar_t</span><span class="special">*</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<a href="http://www.boost.org/libs/range/test/algorithm_example.cpp" target="_top">algorithm_example.cpp</a>
|
||||
shows the replace example from the introduction.
|
||||
</li>
|
||||
<li class="listitem"><a href="http://www.boost.org/libs/range/test/iterator_range.cpp" target="_top">iterator_range.cpp</a></li>
|
||||
<li class="listitem"><a href="http://www.boost.org/libs/range/test/sub_range.cpp" target="_top">sub_range.cpp</a></li>
|
||||
<li class="listitem"><a href="http://www.boost.org/libs/range/test/iterator_pair.cpp" target="_top">iterator_pair.cpp</a></li>
|
||||
<li class="listitem"><a href="http://www.boost.org/libs/range/test/reversible_range.cpp" target="_top">reversible_range.cpp</a></li>
|
||||
<li class="listitem"><a href="http://www.boost.org/libs/range/test/std_container.cpp" target="_top">std_container.cpp</a></li>
|
||||
<li class="listitem"><a href="http://www.boost.org/libs/range/test/array.cpp" target="_top">array.cpp</a></li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="library_headers.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,127 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>FAQ</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="portability.html" title="Portability">
|
||||
<link rel="next" href="history_ack.html" title="History and Acknowledgement">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="portability.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="history_ack.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="FAQ">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.faq"></a><a class="link" href="faq.html" title="FAQ">FAQ</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
1. <span class="emphasis"><em><span class="bold"><strong>Why is there no difference between <code class="computeroutput"><span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">C</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
and <code class="computeroutput"><span class="identifier">range_const_iterator</span><span class="special"><</span><span class="identifier">C</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
for <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span><span class="special">></span></code>?</strong></span></em></span>
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
In general it is not possible nor desirable to find a corresponding <code class="computeroutput"><span class="identifier">const_iterator</span></code>. When it is possible to
|
||||
come up with one, the client might choose to construct a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">const_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">></span></code>
|
||||
object.
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Note that an <a class="link" href="utilities/iterator_range.html" title="Class iterator_range"><code class="computeroutput"><span class="identifier">iterator_range</span></code></a> is somewhat more
|
||||
convenient than a <code class="computeroutput"><span class="identifier">pair</span></code>
|
||||
and that a <a class="link" href="utilities/sub_range.html" title="Class sub_range"><code class="computeroutput"><span class="identifier">sub_range</span></code></a>
|
||||
does propagate const-ness.
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
<p>
|
||||
2. <span class="emphasis"><em><span class="bold"><strong>Why is there not supplied more types or
|
||||
more functions?</strong></span></em></span>
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
The library has been kept small because its current interface will serve
|
||||
most purposes. If and when a genuine need arises for more functionality,
|
||||
it can be implemented.
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
<p>
|
||||
3. <span class="emphasis"><em><span class="bold"><strong>How should I implement generic algorithms
|
||||
for ranges?</strong></span></em></span>
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
One should always start with a generic algorithm that takes two iterators
|
||||
(or more) as input. Then use Boost.Range to build handier versions on top
|
||||
of the iterator based algorithm. Please notice that once the range version
|
||||
of the algorithm is done, it makes sense not to expose the iterator version
|
||||
in the public interface.
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
<p>
|
||||
4. <span class="emphasis"><em><span class="bold"><strong>Why is there no Incrementable Range concept?</strong></span></em></span>
|
||||
</p>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Even though we speak of incrementable iterators, it would not make much
|
||||
sense for ranges; for example, we cannot determine the size and emptiness
|
||||
of a range since we cannot even compare its iterators.
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
<div class="blockquote"><blockquote class="blockquote">
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Note also that incrementable iterators are derived from output iterators
|
||||
and so there exist no output range.
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
</blockquote></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="portability.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="history_ack.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,90 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>History and Acknowledgement</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="faq.html" title="FAQ">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="faq.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
|
||||
</div>
|
||||
<div class="section" title="History and Acknowledgement">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.history_ack"></a><a class="link" href="history_ack.html" title="History and Acknowledgement"> History and Acknowledgement</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
The library have been under way for a long time. Dietmar Kühl originally intended
|
||||
to submit an <code class="computeroutput"><span class="identifier">array_traits</span></code> class
|
||||
template which had most of the functionality present now, but only for arrays
|
||||
and standard containers.
|
||||
</p>
|
||||
<p>
|
||||
Meanwhile work on algorithms for containers in various contexts showed the
|
||||
need for handling pairs of iterators, and string libraries needed special treatment
|
||||
of character arrays. In the end it made sense to formalize the minimal requirements
|
||||
of these similar concepts. And the results are the Range concepts found in
|
||||
this library.
|
||||
</p>
|
||||
<p>
|
||||
The term Range was adopted because of paragraph 24.1/7 from the C++ standard:
|
||||
</p>
|
||||
<p>
|
||||
Most of the library's algorithmic templates that operate on data structures
|
||||
have interfaces that use ranges. A range is a pair of iterators that designate
|
||||
the beginning and end of the computation. A range [i, i) is an empty range;
|
||||
in general, a range [i, j) refers to the elements in the data structure starting
|
||||
with the one pointed to by i and up to but not including the one pointed to
|
||||
by j. Range [i, j) is valid if and only if j is reachable from i. The result
|
||||
of the application of functions in the library to invalid ranges is undefined.
|
||||
</p>
|
||||
<p>
|
||||
Special thanks goes to
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Pavol Droba for help with documentation and implementation
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Pavel Vozenilek for help with porting the library
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Jonathan Turkanis and John Torjo for help with documentation
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Hartmut Kaiser for being review manager
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Jonathan Turkanis for porting the lib (as far sa possible) to vc6 and vc7.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
The concept checks and their documentation was provided by Daniel Walker.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="faq.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,154 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Introduction</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="next" href="concepts.html" title="Range Concepts">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Introduction">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.introduction"></a><a class="link" href="introduction.html" title="Introduction">Introduction</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
Generic algorithms have so far been specified in terms of two or more iterators.
|
||||
Two iterators would together form a range of values that the algorithm could
|
||||
work on. This leads to a very general interface, but also to a somewhat clumsy
|
||||
use of the algorithms with redundant specification of container names. Therefore
|
||||
we would like to raise the abstraction level for algorithms so they specify
|
||||
their interface in terms of <a class="link" href="concepts.html" title="Range Concepts">Ranges</a> as
|
||||
much as possible.
|
||||
</p>
|
||||
<p>
|
||||
The most common form of ranges we are used to work with is standard library
|
||||
containers. However, one often finds it desirable to extend that code to work
|
||||
with other types that offer enough functionality to satisfy the needs of the
|
||||
generic code <span class="bold"><strong><span class="emphasis"><em>if a suitable layer of indirection
|
||||
is applied</em></span></strong></span> . For example, raw arrays are often suitable
|
||||
for use with generic code that works with containers, provided a suitable adapter
|
||||
is used. Likewise, null terminated strings can be treated as containers of
|
||||
characters, if suitably adapted.
|
||||
</p>
|
||||
<p>
|
||||
This library therefore provides the means to adapt standard-like containers,
|
||||
null terminated strings, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pairs</span></code> of
|
||||
iterators, and raw arrays (and more), such that the same generic code can work
|
||||
with them all. The basic idea is to add another layer of indirection using
|
||||
<a href="../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">metafunctions</a>
|
||||
and free-standing functions so syntactic and/or semantic differences can be
|
||||
removed.
|
||||
</p>
|
||||
<p>
|
||||
The main advantages are
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
simpler implementation and specification of generic range algorithms
|
||||
</li>
|
||||
<li class="listitem">
|
||||
more flexible, compact and maintainable client code
|
||||
</li>
|
||||
<li class="listitem">
|
||||
safe use of built-in arrays (for legacy code; why else would you use built-in
|
||||
arrays?)
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
Below are given a small example (the complete example can be found <a href="http://www.boost.org/libs/range/test/algorithm_example.cpp" target="_top">here</a>
|
||||
):
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="comment">//
|
||||
</span><span class="comment">// example: extracting bounds in a generic algorithm
|
||||
</span><span class="comment">//
|
||||
</span><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardReadableRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span>
|
||||
<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="identifier">ForwardReadableRange</span> <span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find</span><span class="special">(</span> <span class="identifier">ForwardReadableRange</span><span class="special">&</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">value</span> <span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">value</span> <span class="special">);</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardReadableRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span>
|
||||
<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="keyword">const</span> <span class="identifier">ForwardReadableRange</span> <span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">ForwardReadableRange</span><span class="special">&</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">value</span> <span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">find</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">value</span> <span class="special">);</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="comment">//
|
||||
</span><span class="comment">// replace first value and return its index
|
||||
</span><span class="comment">//
|
||||
</span><span class="keyword">template</span><span class="special"><</span> <span class="keyword">class</span> <span class="identifier">ForwardReadableWriteableRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">T</span> <span class="special">></span>
|
||||
<span class="keyword">inline</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_size</span><span class="special"><</span> <span class="identifier">ForwardReadableWriteableRange</span> <span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">my_generic_replace</span><span class="special">(</span> <span class="identifier">ForwardReadableWriteableRange</span><span class="special">&</span> <span class="identifier">c</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">value</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">replacement</span> <span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special"><</span> <span class="identifier">ForwardReadableWriteableRange</span> <span class="special">>::</span><span class="identifier">type</span> <span class="identifier">found</span> <span class="special">=</span> <span class="identifier">find</span><span class="special">(</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">value</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">if</span><span class="special">(</span> <span class="identifier">found</span> <span class="special">!=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">)</span> <span class="special">)</span>
|
||||
<span class="special">*</span><span class="identifier">found</span> <span class="special">=</span> <span class="identifier">replacement</span><span class="special">;</span>
|
||||
<span class="keyword">return</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">distance</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">c</span> <span class="special">),</span> <span class="identifier">found</span> <span class="special">);</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="comment">//
|
||||
</span><span class="comment">// usage
|
||||
</span><span class="comment">//
|
||||
</span><span class="keyword">const</span> <span class="keyword">int</span> <span class="identifier">N</span> <span class="special">=</span> <span class="number">5</span><span class="special">;</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">my_vector</span><span class="special">;</span>
|
||||
<span class="keyword">int</span> <span class="identifier">values</span><span class="special">[]</span> <span class="special">=</span> <span class="special">{</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span> <span class="special">};</span>
|
||||
|
||||
<span class="identifier">my_vector</span><span class="special">.</span><span class="identifier">assign</span><span class="special">(</span> <span class="identifier">values</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span> <span class="identifier">values</span> <span class="special">)</span> <span class="special">);</span>
|
||||
<span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">iterator</span> <span class="identifier">iterator</span><span class="special">;</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">iterator</span><span class="special">,</span><span class="identifier">iterator</span><span class="special">></span> <span class="identifier">my_view</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">my_vector</span> <span class="special">),</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span> <span class="identifier">my_vector</span> <span class="special">)</span> <span class="special">+</span> <span class="identifier">N</span> <span class="special">);</span>
|
||||
<span class="keyword">char</span> <span class="identifier">str_val</span><span class="special">[]</span> <span class="special">=</span> <span class="string">"a string"</span><span class="special">;</span>
|
||||
<span class="keyword">char</span><span class="special">*</span> <span class="identifier">str</span> <span class="special">=</span> <span class="identifier">str_val</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">my_generic_replace</span><span class="special">(</span> <span class="identifier">my_vector</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="number">2</span> <span class="special">);</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">my_generic_replace</span><span class="special">(</span> <span class="identifier">my_view</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="number">2</span> <span class="special">);</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">my_generic_replace</span><span class="special">(</span> <span class="identifier">str</span><span class="special">,</span> <span class="char">'a'</span><span class="special">,</span> <span class="char">'b'</span> <span class="special">);</span>
|
||||
|
||||
<span class="comment">// prints '3', '5' and '0'
|
||||
</span></pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
By using the free-standing functions and <a href="../../../libs/mpl/doc/refmanual/metafunction.html" target="_top">metafunctions</a>,
|
||||
the code automatically works for all the types supported by this library; now
|
||||
and in the future. Notice that we have to provide two versions of <code class="computeroutput"><span class="identifier">find</span><span class="special">()</span></code> since
|
||||
we cannot forward a non-const rvalue with reference arguments (see this article
|
||||
about <a href="http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm" target="_top">The
|
||||
Forwarding Problem</a> ).
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../index.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,430 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Library Headers</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="style_guide.html" title="Terminology and style guidelines">
|
||||
<link rel="next" href="examples.html" title="Examples">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="style_guide.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Library Headers">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.library_headers"></a><a class="link" href="library_headers.html" title="Library Headers">Library Headers</a>
|
||||
</h2></div></div></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Header
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Includes
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Related Concept
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
everything
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">metafunctions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
every metafunction
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
every function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">value_type</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/metafunctions.html" title="Metafunctions"><code class="computeroutput"><span class="identifier">range_value</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/metafunctions.html" title="Metafunctions"><code class="computeroutput"><span class="identifier">range_iterator</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">difference_type</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/metafunctions.html" title="Metafunctions"><code class="computeroutput"><span class="identifier">range_difference</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">pointer</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/metafunctions.html" title="Metafunctions"><code class="computeroutput"><span class="identifier">range_pointer</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">category</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/metafunctions.html" title="Metafunctions"><code class="computeroutput"><span class="identifier">range_category</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">reverse_iterator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/metafunctions.html" title="Metafunctions"><code class="computeroutput"><span class="identifier">range_reverse_iterator</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">begin</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">begin</span></code></a> and <a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">const_begin</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">end</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">end</span></code></a> and <a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">const_end</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">empty</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">empty</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">distance</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">distance</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">size</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">size</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">rbegin</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">rbegin</span></code></a> and <a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">const_rbegin</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">rend</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">rend</span></code></a> and <a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">const_rend</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">as_array</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">as_array</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">as_literal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">as_literal</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">iterator_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="utilities/iterator_range.html" title="Class iterator_range"><code class="computeroutput"><span class="identifier">iterator_range</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">sub_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="utilities/sub_range.html" title="Class sub_range"><code class="computeroutput"><span class="identifier">sub_range</span></code></a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">concepts</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="concepts.html" title="Range Concepts">Range concepts</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
-
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="style_guide.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="examples.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,141 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>MFC/ATL (courtesy of Shunsuke Sogame)</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="examples.html" title="Examples">
|
||||
<link rel="next" href="mfc_atl/requirements.html" title="Requirements">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="examples.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl/requirements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="MFC/ATL (courtesy of Shunsuke Sogame)">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.mfc_atl"></a><a class="link" href="mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)"> MFC/ATL (courtesy of Shunsuke Sogame)</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="mfc_atl/requirements.html"> Requirements</a></span></dt>
|
||||
<dt><span class="section"><a href="mfc_atl/mfc_ranges.html"> MFC Ranges</a></span></dt>
|
||||
<dt><span class="section"><a href="mfc_atl/atl_ranges.html"> ATL Ranges</a></span></dt>
|
||||
<dt><span class="section"><a href="mfc_atl/const_ranges.html"> const Ranges</a></span></dt>
|
||||
<dt><span class="section"><a href="mfc_atl/references.html"> References</a></span></dt>
|
||||
</dl></div>
|
||||
<a name="range.mfc_atl.introduction"></a><h5>
|
||||
<a name="id3280319"></a>
|
||||
<a class="link" href="mfc_atl.html#range.mfc_atl.introduction">Introduction</a>
|
||||
</h5>
|
||||
<p>
|
||||
This implementation was kindly donated by Shunsuke Sogame. This header adapts
|
||||
MFC and ATL containers to the appropriate Range concepts.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr></tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<span class="bold"><strong>Author:</strong></span>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Shunsuke Sogame
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<span class="bold"><strong>Contact:</strong></span>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
mb2act@yahoo.co.jp
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<span class="bold"><strong>Date:</strong></span>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
26th of May 2006
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<span class="bold"><strong>Copyright:</strong></span>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
Shunsuke Sogame 2005-2006. Use, modification and distribution is
|
||||
subject to the Boost Software License, Version 1.0
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<a name="range.mfc_atl.overview"></a><h5>
|
||||
<a name="id3280457"></a>
|
||||
<a class="link" href="mfc_atl.html#range.mfc_atl.overview">Overview</a>
|
||||
</h5>
|
||||
<p>
|
||||
Boost.Range MFC/ATL Extension provides Boost.Range support for MFC/ATL collection
|
||||
and string types.
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">CTypedPtrArray</span><span class="special"><</span><span class="identifier">CPtrArray</span><span class="special">,</span> <span class="identifier">CList</span><span class="special"><</span><span class="identifier">CString</span><span class="special">></span> <span class="special">*></span> <span class="identifier">myArray</span><span class="special">;</span>
|
||||
<span class="special">...</span>
|
||||
<span class="identifier">BOOST_FOREACH</span> <span class="special">(</span><span class="identifier">CList</span><span class="special"><</span><span class="identifier">CString</span><span class="special">></span> <span class="special">*</span><span class="identifier">theList</span><span class="special">,</span> <span class="identifier">myArray</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">BOOST_FOREACH</span> <span class="special">(</span><span class="identifier">CString</span><span class="special">&</span> <span class="identifier">str</span><span class="special">,</span> <span class="special">*</span><span class="identifier">theList</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">to_upper</span><span class="special">(</span><span class="identifier">str</span><span class="special">);</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">sort</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">str</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">str</span><span class="special">));</span>
|
||||
<span class="special">...</span>
|
||||
<span class="special">}</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="examples.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl/requirements.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,374 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>ATL Ranges</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)">
|
||||
<link rel="prev" href="mfc_ranges.html" title="MFC Ranges">
|
||||
<link rel="next" href="const_ranges.html" title="const Ranges">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="mfc_ranges.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="const_ranges.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="ATL Ranges">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.mfc_atl.atl_ranges"></a><a class="link" href="atl_ranges.html" title="ATL Ranges"> ATL Ranges</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
If the <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">atl</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
is included before or after Boost.Range headers, the ATL collections and
|
||||
strings become models of Range. The table below lists the Traversal Category
|
||||
and <code class="computeroutput"><span class="identifier">range_reference</span></code> of ATL
|
||||
ranges.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Range
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Traversal Category
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">range_reference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CAtlArray</span><span class="special"><</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">ET</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">E</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CAutoPtrArray</span><span class="special"><</span><span class="identifier">E</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">E</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CInterfaceArray</span><span class="special"><</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CComQIPtr</span><span class="special"><</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">>&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CAtlList</span><span class="special"><</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">ET</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">E</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CAutoPtrList</span><span class="special"><</span><span class="identifier">E</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">E</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CHeapPtrList</span><span class="special"><</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">A</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">E</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CInterfaceList</span><span class="special"><</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CComQIPtr</span><span class="special"><</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">>&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CAtlMap</span><span class="special"><</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">V</span><span class="special">,</span><span class="identifier">KT</span><span class="special">,</span><span class="identifier">VT</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CRBTree</span><span class="special"><</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">V</span><span class="special">,</span><span class="identifier">KT</span><span class="special">,</span><span class="identifier">VT</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CRBMap</span><span class="special"><</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">V</span><span class="special">,</span><span class="identifier">KT</span><span class="special">,</span><span class="identifier">VT</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CRBMultiMap</span><span class="special"><</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">V</span><span class="special">,</span><span class="identifier">KT</span><span class="special">,</span><span class="identifier">VT</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CSimpleStringT</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">b</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">B</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CStringT</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">ST</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">B</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CFixedStringT</span><span class="special"><</span><span class="identifier">S</span><span class="special">,</span><span class="identifier">n</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">range_reference</span><span class="special"><</span><span class="identifier">S</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CComBSTR</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">OLECHAR</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CSimpleArray</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">TE</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">T</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<p>
|
||||
Other <a class="link" href="../../index.html" title="Chapter 1. Range 2.0">Boost.Range</a> metafunctions are defined
|
||||
by the following. Let <code class="computeroutput"><span class="identifier">Range</span></code>
|
||||
be any type listed above and <code class="computeroutput"><span class="identifier">Ref</span></code>
|
||||
be the same as <code class="computeroutput"><span class="identifier">range_reference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>.
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">Ref</span><span class="special">>::</span><span class="identifier">type</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span></code>,
|
||||
and <code class="computeroutput"><span class="identifier">range_pointer</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">add_pointer</span><span class="special"><</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">Ref</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span></code>.
|
||||
As for <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">Range</span></code>,
|
||||
see below.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="mfc_ranges.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="const_ranges.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,125 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>const Ranges</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)">
|
||||
<link rel="prev" href="atl_ranges.html" title="ATL Ranges">
|
||||
<link rel="next" href="references.html" title="References">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="atl_ranges.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="const Ranges">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.mfc_atl.const_ranges"></a><a class="link" href="const_ranges.html" title="const Ranges"> const Ranges</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">range_reference</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
is defined by the following algorithm. Let <code class="computeroutput"><span class="identifier">Range</span></code>
|
||||
be any type listed above and <code class="computeroutput"><span class="identifier">Ref</span></code>
|
||||
be the same as <code class="computeroutput"><span class="identifier">range_reference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">if</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">is</span> <span class="identifier">CObArray</span> <span class="special">||</span> <span class="identifier">Range</span> <span class="identifier">is</span> <span class="identifier">CObList</span><span class="special">)</span>
|
||||
<span class="keyword">return</span> <span class="identifier">CObject</span> <span class="keyword">const</span> <span class="special">*</span> <span class="special">&</span>
|
||||
<span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">Range</span> <span class="identifier">is</span> <span class="identifier">CPtrArray</span> <span class="special">||</span> <span class="identifier">Range</span> <span class="identifier">is</span> <span class="identifier">CPtrList</span><span class="special">)</span>
|
||||
<span class="keyword">return</span> <span class="keyword">void</span> <span class="keyword">const</span> <span class="special">*</span> <span class="special">&</span>
|
||||
<span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">there</span> <span class="identifier">is</span> <span class="identifier">a</span> <span class="identifier">type</span> <span class="identifier">X</span> <span class="identifier">such</span> <span class="identifier">that</span> <span class="identifier">X</span><span class="special">&</span> <span class="identifier">is</span> <span class="identifier">the</span> <span class="identifier">same</span> <span class="identifier">as</span> <span class="identifier">Ref</span><span class="special">)</span>
|
||||
<span class="keyword">return</span> <span class="identifier">X</span> <span class="keyword">const</span> <span class="special">&</span>
|
||||
<span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">there</span> <span class="identifier">is</span> <span class="identifier">a</span> <span class="identifier">type</span> <span class="identifier">X</span> <span class="identifier">such</span> <span class="identifier">that</span> <span class="identifier">X</span><span class="special">*</span> <span class="keyword">const</span> <span class="identifier">is</span> <span class="identifier">the</span> <span class="identifier">same</span> <span class="identifier">as</span> <span class="identifier">Ref</span><span class="special">)</span>
|
||||
<span class="keyword">return</span> <span class="identifier">X</span> <span class="keyword">const</span> <span class="special">*</span> <span class="keyword">const</span>
|
||||
<span class="keyword">else</span>
|
||||
<span class="keyword">return</span> <span class="identifier">Ref</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Other Boost.Range metafunctions are defined by the following.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Range metafunction
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Result
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">range_difference</span><span class="special"><</span><span class="keyword">const</span>
|
||||
<span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">range_pointer</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">add_pointer</span><span class="special"><</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">range_reference</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="atl_ranges.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,480 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>MFC Ranges</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)">
|
||||
<link rel="prev" href="requirements.html" title="Requirements">
|
||||
<link rel="next" href="atl_ranges.html" title="ATL Ranges">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="requirements.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="atl_ranges.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="MFC Ranges">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.mfc_atl.mfc_ranges"></a><a class="link" href="mfc_ranges.html" title="MFC Ranges"> MFC Ranges</a>
|
||||
</h3></div></div></div>
|
||||
<p>
|
||||
If the <code class="computeroutput"><span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">mfc</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
is included before or after Boost.Range headers, the MFC collections and
|
||||
strings become models of Range. The table below lists the Traversal Category
|
||||
and <code class="computeroutput"><span class="identifier">range_reference</span></code> of MFC
|
||||
ranges.
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Range
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Traversal Category
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">range_reference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CArray</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">A</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">T</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CList</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">A</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">T</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CMap</span><span class="special"><</span><span class="identifier">K</span><span class="special">,</span><span class="identifier">AK</span><span class="special">,</span><span class="identifier">M</span><span class="special">,</span><span class="identifier">AM</span><span class="special">></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CTypedPtrArray</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</span><span class="special">*></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">T</span><span class="special">*</span>
|
||||
<span class="keyword">const</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CTypedPtrList</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</span><span class="special">*></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">T</span><span class="special">*</span>
|
||||
<span class="keyword">const</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CTypedPtrMap</span><span class="special"><</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</span><span class="special">*,</span><span class="identifier">V</span><span class="special">*></span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">T</span><span class="special">*,</span><span class="identifier">V</span><span class="special">*></span>
|
||||
<span class="keyword">const</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CByteArray</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">BYTE</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CDWordArray</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">DWORD</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CObArray</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CObject</span><span class="special">*&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CPtrArray</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="keyword">void</span><span class="special">*&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CStringArray</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CString</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CUIntArray</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">UINT</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CWordArray</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/random_access_range.html" title="Random Access Range">Random Access
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">WORD</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CObList</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CObject</span><span class="special">*&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CPtrList</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="keyword">void</span><span class="special">*&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CStringList</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CString</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CMapPtrToWord</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">void</span><span class="special">*,</span><span class="identifier">WORD</span><span class="special">></span>
|
||||
<span class="keyword">const</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CMapPtrToPtr</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">void</span><span class="special">*,</span><span class="keyword">void</span><span class="special">*></span>
|
||||
<span class="keyword">const</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CMapStringToOb</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">String</span><span class="special">,</span><span class="identifier">CObject</span><span class="special">*></span>
|
||||
<span class="keyword">const</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CMapStringToString</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">Range</span><span class="special">::</span><span class="identifier">CPair</span><span class="special">&</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CMapWordToOb</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">WORD</span><span class="special">,</span><span class="identifier">CObject</span><span class="special">*></span>
|
||||
<span class="keyword">const</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">CMapWordToPtr</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<a class="link" href="../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">WORD</span><span class="special">,</span><span class="keyword">void</span><span class="special">*></span>
|
||||
<span class="keyword">const</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<p>
|
||||
Other Boost.Range metafunctions are defined by the following. Let <code class="computeroutput"><span class="identifier">Range</span></code> be any type listed above and <code class="computeroutput"><span class="identifier">Ref</span></code> be the same as <code class="computeroutput"><span class="identifier">range_reference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code>.
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">remove_const</span><span class="special"><</span><span class="identifier">Ref</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span></code>,
|
||||
and <code class="computeroutput"><span class="identifier">range_pointer</span><span class="special"><</span><span class="identifier">Range</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">add_pointer</span><span class="special"><</span><span class="identifier">remove_reference</span><span class="special"><</span><span class="identifier">Ref</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span></code>.
|
||||
As for <code class="computeroutput"><span class="keyword">const</span> <span class="identifier">Range</span></code>,
|
||||
see below.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="requirements.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="atl_ranges.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>References</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)">
|
||||
<link rel="prev" href="const_ranges.html" title="const Ranges">
|
||||
<link rel="next" href="../upgrade.html" title="Upgrade version of Boost.Range">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="const_ranges.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../upgrade.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="References">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.mfc_atl.references"></a><a class="link" href="references.html" title="References"> References</a>
|
||||
</h3></div></div></div>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem"><a class="link" href="../../index.html" title="Chapter 1. Range 2.0">Boost.Range</a></li>
|
||||
<li class="listitem"><a href="http://msdn.microsoft.com/en-us/library/942860sh.aspx" target="_top">MFC
|
||||
Collection Classes</a></li>
|
||||
<li class="listitem"><a href="http://msdn.microsoft.com/en-us/library/15e672bd.aspx" target="_top">ATL
|
||||
Collection Classes</a></li>
|
||||
</ol></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="const_ranges.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../upgrade.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,51 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Requirements</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)">
|
||||
<link rel="prev" href="../mfc_atl.html" title="MFC/ATL (courtesy of Shunsuke Sogame)">
|
||||
<link rel="next" href="mfc_ranges.html" title="MFC Ranges">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_ranges.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Requirements">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.mfc_atl.requirements"></a><a class="link" href="requirements.html" title="Requirements"> Requirements</a>
|
||||
</h3></div></div></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
Boost C++ Libraries Version 1.34.0 or later (no compilation required)
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Visual C++ 7.1 or later (for MFC and ATL)
|
||||
</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_ranges.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,89 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Portability</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="upgrade/upgrade_from_1_34.html" title="Upgrade from version 1.34">
|
||||
<link rel="next" href="faq.html" title="FAQ">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="upgrade/upgrade_from_1_34.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="faq.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Portability">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.portability"></a><a class="link" href="portability.html" title="Portability">Portability</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
A huge effort has been made to port the library to as many compilers as possible.
|
||||
</p>
|
||||
<p>
|
||||
Full support for built-in arrays require that the compiler supports class template
|
||||
partial specialization. For non-conforming compilers there might be a chance
|
||||
that it works anyway thanks to workarounds in the type traits library. Visual
|
||||
C++ 6/7.0 has a limited support for arrays: as long as the arrays are of built-in
|
||||
type it should work.
|
||||
</p>
|
||||
<p>
|
||||
Notice also that some compilers cannot do function template ordering properly.
|
||||
In that case one must rely of <a class="link" href="reference/semantics/metafunctions.html" title="Metafunctions"><code class="computeroutput"><span class="identifier">range_iterator</span></code></a> and a single function
|
||||
definition instead of overloaded versions for const and non-const arguments.
|
||||
So if one cares about old compilers, one should not pass rvalues to the functions.
|
||||
</p>
|
||||
<p>
|
||||
For maximum portability you should follow these guidelines:
|
||||
</p>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
do not use built-in arrays,
|
||||
</li>
|
||||
<li class="listitem">
|
||||
do not pass rvalues to <a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">begin</span></code></a><code class="computeroutput"><span class="special">()</span></code>,
|
||||
<a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">end</span></code></a><code class="computeroutput"><span class="special">()</span></code> and <a class="link" href="utilities/iterator_range.html" title="Class iterator_range"><code class="computeroutput"><span class="identifier">iterator_range</span></code></a> Range constructors
|
||||
and assignment operators,
|
||||
</li>
|
||||
<li class="listitem">
|
||||
use <a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">const_begin</span></code></a><code class="computeroutput"><span class="special">()</span></code> and <a class="link" href="reference/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">const_end</span></code></a><code class="computeroutput"><span class="special">()</span></code>
|
||||
whenever your code by intention is read-only; this will also solve most rvalue
|
||||
problems,
|
||||
</li>
|
||||
<li class="listitem">
|
||||
do not rely on ADL:
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
if you overload functions, include that header before the headers in
|
||||
this library,
|
||||
</li>
|
||||
<li class="listitem">
|
||||
put all overloads in namespace boost.
|
||||
</li>
|
||||
</ul></div>
|
||||
</li>
|
||||
</ol></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="upgrade/upgrade_from_1_34.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="faq.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,93 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Reference</title>
|
||||
<link rel="stylesheet" href="../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="prev" href="concepts/concept_checking.html" title="Concept Checking">
|
||||
<link rel="next" href="reference/overview.html" title="Overview">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="concepts/concept_checking.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/overview.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Reference">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="range.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
|
||||
</h2></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="reference/overview.html">Overview</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/synopsis.html">Synopsis</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/semantics.html">Semantics</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="reference/semantics/metafunctions.html">Metafunctions</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/semantics/functions.html">Functions</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="reference/adaptors.html"> Range Adaptors</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="reference/adaptors/adaptors_introduction.html"> Introduction
|
||||
and motivation</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/adaptors/adaptors_synopsis.html"> Synopsis</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/adaptors/adaptors_general_requirements.html">
|
||||
General Requirements</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/adaptors/adaptors_reference.html"> Reference</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="reference/algorithms.html"> Range Algorithm</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="reference/algorithms/range_algorithm_introduction.html">
|
||||
Introduction and motivation</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/algorithms/range_algorithm_mutating_algorithms.html">
|
||||
Mutating algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/algorithms/range_algorithm_non_mutating_algorithms.html">
|
||||
Non-mutating algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/algorithms/set_algorithms.html"> Set algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/algorithms/heap_algorithms.html"> Heap algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/algorithms/permutation_algorithms.html">
|
||||
Permutation algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/algorithms/range_algorithm_new_algorithms.html">
|
||||
New algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/algorithms/range_numeric.html"> Numeric
|
||||
algorithms</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="reference/ranges.html"> Provided Ranges</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="reference/ranges/counting_range.html"> counting_range</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/ranges/istream_range.html"> istream_range</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/ranges/irange.html"> irange</a></span></dt>
|
||||
</dl></dd>
|
||||
<dt><span class="section"><a href="reference/extending.html"> Extending the library</a></span></dt>
|
||||
<dd><dl>
|
||||
<dt><span class="section"><a href="reference/extending/method_1.html"> Method 1: provide
|
||||
member functions and nested types</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/extending/method_2.html"> Method 2: provide
|
||||
free-standing functions and specialize metafunctions</a></span></dt>
|
||||
<dt><span class="section"><a href="reference/extending/method_3.html"> Method 3: provide
|
||||
range adaptor implementations</a></span></dt>
|
||||
</dl></dd>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="concepts/concept_checking.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference/overview.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,51 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Adaptors</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="semantics/functions.html" title="Functions">
|
||||
<link rel="next" href="adaptors/adaptors_introduction.html" title="Introduction and motivation">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="semantics/functions.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors/adaptors_introduction.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Adaptors">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.reference.adaptors"></a><a class="link" href="adaptors.html" title="Range Adaptors"> Range Adaptors</a>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="adaptors/adaptors_introduction.html"> Introduction
|
||||
and motivation</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors/adaptors_synopsis.html"> Synopsis</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors/adaptors_general_requirements.html">
|
||||
General Requirements</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors/adaptors_reference.html"> Reference</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="semantics/functions.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors/adaptors_introduction.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,141 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>General Requirements</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors.html" title="Range Adaptors">
|
||||
<link rel="prev" href="adaptors_synopsis.html" title="Synopsis">
|
||||
<link rel="next" href="adaptors_reference.html" title="Reference">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adaptors_synopsis.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="General Requirements">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_general_requirements"></a><a class="link" href="adaptors_general_requirements.html" title="General Requirements">
|
||||
General Requirements</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
In the description of generator expressions, the following notation is
|
||||
used:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">fwdRng</span></code> is an expression
|
||||
of a type <code class="computeroutput"><span class="identifier">R</span></code> that models
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">biRng</span></code> is an expression
|
||||
of a type <code class="computeroutput"><span class="identifier">R</span></code> that models
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">rndRng</span></code> is an expression
|
||||
of a type <code class="computeroutput"><span class="identifier">R</span></code> that models
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">pred</span></code> is an expression
|
||||
of a type that models <code class="computeroutput"><span class="identifier">UnaryPredicate</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">bi_pred</span></code> is an expression
|
||||
of a type that models <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">fun</span></code> is an expression
|
||||
of a type that models <code class="computeroutput"><span class="identifier">UnaryFunction</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">value</span></code>, <code class="computeroutput"><span class="identifier">new_value</span></code> and <code class="computeroutput"><span class="identifier">old_value</span></code>
|
||||
are objects convertible to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">R</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">n</span><span class="special">,</span><span class="identifier">m</span></code> are integer expressions convertible
|
||||
to <code class="computeroutput"><span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">R</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
Also note that <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">R</span><span class="special">>::</span><span class="identifier">type</span></code> must be implicitly convertible to
|
||||
the type arguments to <code class="computeroutput"><span class="identifier">pred</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">bi_pred</span></code> and <code class="computeroutput"><span class="identifier">fun</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
Range Category in the following adaptor descriptions refers to the minimum
|
||||
range concept required by the range passed to the adaptor. The resultant
|
||||
range is a model of the same range concept as the input range unless specified
|
||||
otherwise.
|
||||
</p>
|
||||
<p>
|
||||
Returned Range Category is the concept of the returned range. In some cases
|
||||
the returned range is of a lesser category than the range passed to the
|
||||
adaptor. For example, the <code class="computeroutput"><span class="identifier">filtered</span></code>
|
||||
adaptor returns only a <code class="computeroutput"><span class="identifier">ForwardRange</span></code>
|
||||
regardless of the input.
|
||||
</p>
|
||||
<p>
|
||||
Furthermore, the following rules apply to any expression of the form
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">adaptor_generator</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
1. Applying <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>
|
||||
to a range <code class="computeroutput"><span class="identifier">R</span></code> (always left
|
||||
argument) and a range adapter <code class="computeroutput"><span class="identifier">RA</span></code>
|
||||
(always right argument) yields a new range type which may not conform to
|
||||
the same range concept as <code class="computeroutput"><span class="identifier">R</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
2. The return-type of <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code> is otherwise unspecified.
|
||||
</p>
|
||||
<p>
|
||||
3. <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>
|
||||
is found by Argument Dependent Lookup (ADL) because a range adaptor is
|
||||
implemented in namespace <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
4. <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>
|
||||
is used to add new behaviour <span class="emphasis"><em><span class="bold"><strong>lazily</strong></span></em></span>
|
||||
and never modifies its left argument.
|
||||
</p>
|
||||
<p>
|
||||
5. All iterators extracted from the left argument are extracted using qualified
|
||||
calls to <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">()</span></code>
|
||||
and <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">()</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
6. In addition to the <code class="computeroutput"><span class="keyword">throw</span></code>-clauses
|
||||
below, <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>
|
||||
may throw exceptions as a result of copying iterators. If such copying
|
||||
cannot throw an exception, then neither can the whole expression.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adaptors_synopsis.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors_reference.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,274 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Introduction and motivation</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors.html" title="Range Adaptors">
|
||||
<link rel="prev" href="../adaptors.html" title="Range Adaptors">
|
||||
<link rel="next" href="adaptors_synopsis.html" title="Synopsis">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../adaptors.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors_synopsis.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Introduction and motivation">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_introduction"></a><a class="link" href="adaptors_introduction.html" title="Introduction and motivation"> Introduction
|
||||
and motivation</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
A <span class="bold"><strong>Range Adaptor</strong></span> is a class that wraps
|
||||
an existing Range to provide a new Range with different behaviour. Since
|
||||
the behaviour of Ranges is determined by their associated iterators, a
|
||||
Range Adaptor simply wraps the underlying iterators with new special iterators.
|
||||
In this example
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptors</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">;</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">vec</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reversed</span><span class="special">,</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">)</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
the iterators from <code class="computeroutput"><span class="identifier">vec</span></code>
|
||||
are wrapped <code class="computeroutput"><span class="identifier">reverse_iterator</span></code>s.
|
||||
The type of the underlying Range Adapter is not documented because you
|
||||
do not need to know it. All that is relevant is that the expression
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">vec</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reversed</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
returns a Range Adaptor where the iterator type is now the iterator type
|
||||
of the range <code class="computeroutput"><span class="identifier">vec</span></code> wrapped
|
||||
in <code class="computeroutput"><span class="identifier">reverse_iterator</span></code>. The
|
||||
expression <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reversed</span></code> is called an <span class="bold"><strong>Adaptor
|
||||
Generator</strong></span>.
|
||||
</p>
|
||||
<p>
|
||||
There are two ways of constructing a range adaptor. The first is by using
|
||||
<code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>.
|
||||
This is my preferred technique, however while discussing range adaptors
|
||||
with others it became clear that some users of the library strongly prefer
|
||||
a more familiar function syntax, so equivalent functions of the present
|
||||
tense form have been added as an alternative syntax. The equivalent to
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">reversed</span></code> is <code class="computeroutput"><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> for example.
|
||||
</p>
|
||||
<p>
|
||||
Why do I prefer the <code class="computeroutput"><span class="keyword">operator</span><span class="special">|</span></code> syntax? The answer is readability:
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">;</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">vec</span><span class="special">),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">)</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
This might not look so bad, but when we apply several adaptors, it becomes
|
||||
much worse. Just compare
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">;</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">unique</span><span class="special">(</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reverse</span><span class="special">(</span> <span class="identifier">vec</span> <span class="special">)</span> <span class="special">),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">)</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
to
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">;</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">vec</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reversed</span>
|
||||
<span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">uniqued</span><span class="special">,</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">)</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Furthermore, some of the adaptor generators take arguments themselves and
|
||||
these arguments are expressed with function call notation too. In those
|
||||
situations, you will really appreciate the succinctness of <code class="computeroutput"><span class="keyword">operator</span><span class="special">|()</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.adaptors.adaptors_introduction.composition_of_adaptors"></a><h6>
|
||||
<a name="id3177994"></a>
|
||||
<a class="link" href="adaptors_introduction.html#range.reference.adaptors.adaptors_introduction.composition_of_adaptors">Composition
|
||||
of Adaptors</a>
|
||||
</h6>
|
||||
<p>
|
||||
Range Adaptors are a powerful complement to Range algorithms. The reason
|
||||
is that adaptors are <span class="emphasis"><em><span class="bold"><strong>orthogonal</strong></span></em></span>
|
||||
to algorithms. For example, consider these Range algorithms:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">)</span></code></li>
|
||||
<li class="listitem"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">count</span><span class="special">(</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">pred</span> <span class="special">)</span></code></li>
|
||||
</ul></div>
|
||||
<p>
|
||||
What should we do if we only want to copy an element <code class="computeroutput"><span class="identifier">a</span></code>
|
||||
if it satisfies some predicate, say <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">a</span><span class="special">)</span></code>?
|
||||
And what if we only want to count the elements that satisfy the same predicate?
|
||||
The naive answer would be to use these algorithms:
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy_if</span><span class="special">(</span>
|
||||
<span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">pred</span><span class="special">,</span>
|
||||
<span class="identifier">out</span> <span class="special">)</span></code></li>
|
||||
<li class="listitem"><code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">count_if</span><span class="special">(</span>
|
||||
<span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">pred</span> <span class="special">)</span></code></li>
|
||||
</ul></div>
|
||||
<p>
|
||||
These algorithms are only defined to maintain a one to one relationship
|
||||
with the standard library algorithms. This approach of adding algorithm
|
||||
suffers a combinatorial explosion. Inevitably many algorithms are missing
|
||||
<code class="computeroutput"><span class="identifier">_if</span></code> variants and there
|
||||
is redundant development overhead for each new algorithm. The Adaptor Generator
|
||||
is the design solution to this problem.
|
||||
</p>
|
||||
<a name="range.reference.adaptors.adaptors_introduction.range_adaptor_alternative_to_copy_if_algorithm"></a><h6>
|
||||
<a name="id3178304"></a>
|
||||
<a class="link" href="adaptors_introduction.html#range.reference.adaptors.adaptors_introduction.range_adaptor_alternative_to_copy_if_algorithm">Range
|
||||
Adaptor alternative to copy_if algorithm</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy_if</span><span class="special">(</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">pred</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
can be expressed as
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span> <span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">filtered</span><span class="special">(</span><span class="identifier">pred</span><span class="special">),</span> <span class="identifier">out</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.adaptors.adaptors_introduction.range_adaptor_alternative_to_count_if_algorithm"></a><h6>
|
||||
<a name="id3178473"></a>
|
||||
<a class="link" href="adaptors_introduction.html#range.reference.adaptors.adaptors_introduction.range_adaptor_alternative_to_count_if_algorithm">Range
|
||||
Adaptor alternative to count_if algorithm</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">count_if</span><span class="special">(</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">pred</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
can be expressed as
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">count</span><span class="special">(</span> <span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">filtered</span><span class="special">(</span><span class="identifier">pred</span><span class="special">),</span> <span class="identifier">out</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
What this means is that <span class="emphasis"><em><span class="bold"><strong>no</strong></span></em></span>
|
||||
algorithm with the <code class="computeroutput"><span class="identifier">_if</span></code>
|
||||
suffix is needed. Furthermore, it turns out that algorithms with the <code class="computeroutput"><span class="identifier">_copy</span></code> suffix are not needed either. Consider
|
||||
the somewhat misdesigned <code class="computeroutput"><span class="identifier">replace_copy_if</span><span class="special">()</span></code> which may be used as
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">;</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">replace_copy_if</span><span class="special">(</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">back_inserter</span><span class="special">(</span><span class="identifier">vec</span><span class="special">),</span> <span class="identifier">pred</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
With adaptors and algorithms we can express this as
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span><span class="special">;</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">replaced_if</span><span class="special">(</span><span class="identifier">pred</span><span class="special">,</span> <span class="identifier">new_value</span><span class="special">));</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
The latter code has several benefits:
|
||||
</p>
|
||||
<p>
|
||||
1. it is more <span class="emphasis"><em><span class="bold"><strong>efficient</strong></span></em></span>
|
||||
because we avoid extra allocations as might happen with <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">back_inserter</span></code>
|
||||
</p>
|
||||
<p>
|
||||
2. it is <span class="emphasis"><em><span class="bold"><strong>flexible</strong></span></em></span>
|
||||
as we can subsequently apply even more adaptors, for example:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">replaced_if</span><span class="special">(</span><span class="identifier">pred</span><span class="special">,</span> <span class="identifier">new_value</span><span class="special">)</span>
|
||||
<span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reversed</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
3. it is <span class="emphasis"><em><span class="bold"><strong>safer</strong></span></em></span> because
|
||||
there is no use of an unbounded output iterator.
|
||||
</p>
|
||||
<p>
|
||||
In this manner, the <span class="emphasis"><em><span class="bold"><strong>composition</strong></span></em></span>
|
||||
of Range Adaptors has the following consequences:
|
||||
</p>
|
||||
<p>
|
||||
1. we no longer need <code class="computeroutput"><span class="identifier">_if</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">_copy</span></code>, <code class="computeroutput"><span class="identifier">_copy_if</span></code>
|
||||
and <code class="computeroutput"><span class="identifier">_n</span></code> variants of algorithms.
|
||||
</p>
|
||||
<p>
|
||||
2. we can generate a multitude of new algorithms on the fly, for example,
|
||||
above we generated <code class="computeroutput"><span class="identifier">reverse_replace_copy_if</span><span class="special">()</span></code>
|
||||
</p>
|
||||
<p>
|
||||
In other words:
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Range Adaptors are to algorithms what algorithms
|
||||
are to containers</strong></span>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../adaptors.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors_synopsis.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,75 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Reference</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors.html" title="Range Adaptors">
|
||||
<link rel="prev" href="adaptors_general_requirements.html" title="General Requirements">
|
||||
<link rel="next" href="adaptors_reference/adjacent_filtered.html" title="adjacent_filtered">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adaptors_general_requirements.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors_reference/adjacent_filtered.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Reference">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference"></a><a class="link" href="adaptors_reference.html" title="Reference"> Reference</a>
|
||||
</h4></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="adaptors_reference/adjacent_filtered.html">
|
||||
adjacent_filtered</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/copied.html">
|
||||
copied</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/filtered.html">
|
||||
filtered</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/indexed.html">
|
||||
indexed</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/indirected.html">
|
||||
indirected</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/map_keys.html">
|
||||
map_keys</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/map_values.html">
|
||||
map_values</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/replaced.html">
|
||||
replaced</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/replaced_if.html">
|
||||
replaced_if</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/reversed.html">
|
||||
reversed</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/sliced.html">
|
||||
sliced</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/strided.html">
|
||||
strided</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/tokenized.html">
|
||||
tokenized</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/transformed.html">
|
||||
transformed</a></span></dt>
|
||||
<dt><span class="section"><a href="adaptors_reference/uniqued.html">
|
||||
uniqued</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adaptors_general_requirements.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors_reference/adjacent_filtered.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,151 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>adjacent_filtered</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="next" href="copied.html" title="copied">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="copied.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="adjacent_filtered">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.adjacent_filtered"></a><a class="link" href="adjacent_filtered.html" title="adjacent_filtered">
|
||||
adjacent_filtered</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="adjacent_filtered.html#range.reference.adaptors.adaptors_reference.adjacent_filtered.adjacent_filtered_example">
|
||||
adjacent_filtered example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">adjacent_filtered</span><span class="special">(</span><span class="identifier">bi_pred</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">adjacent_filter</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">bi_pred</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span> The <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range is convertible to both argument types of <code class="computeroutput"><span class="identifier">bi_pred</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postcondition:</strong></span> For all adjacent elements
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code> in the returned range, <code class="computeroutput"><span class="identifier">bi_pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Throws:</strong></span> Whatever the copy constructor
|
||||
of <code class="computeroutput"><span class="identifier">bi_pred</span></code> might throw.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">SinglePassRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="adjacent_filtered example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.adjacent_filtered.adjacent_filtered_example"></a><a class="link" href="adjacent_filtered.html#range.reference.adaptors.adaptors_reference.adjacent_filtered.adjacent_filtered_example" title="adjacent_filtered example">
|
||||
adjacent_filtered example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">adjacent_filtered</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">functional</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">adjacent_filtered</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">not_equal_to</span><span class="special"><</span><span class="keyword">int</span><span class="special">>()),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="copied.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,152 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>copied</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="adjacent_filtered.html" title="adjacent_filtered">
|
||||
<link rel="next" href="filtered.html" title="filtered">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adjacent_filtered.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="filtered.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="copied">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.copied"></a><a class="link" href="copied.html" title="copied">
|
||||
copied</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="copied.html#range.reference.adaptors.adaptors_reference.copied.copied_example">
|
||||
copied example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">copied</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span>
|
||||
<span class="identifier">m</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">n</span><span class="special">,</span>
|
||||
<span class="identifier">m</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span><code class="computeroutput"><span class="number">0</span>
|
||||
<span class="special"><=</span> <span class="identifier">n</span>
|
||||
<span class="special">&&</span> <span class="identifier">n</span>
|
||||
<span class="special"><=</span> <span class="identifier">m</span>
|
||||
<span class="special">&&</span> <span class="identifier">m</span>
|
||||
<span class="special"><</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Returns:</strong></span> A new <code class="computeroutput"><span class="identifier">iterator_range</span></code>
|
||||
that holds the sliced range <code class="computeroutput"><span class="special">[</span><span class="identifier">n</span><span class="special">,</span><span class="identifier">m</span><span class="special">)</span></code>
|
||||
of the original range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="copied example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.copied.copied_example"></a><a class="link" href="copied.html#range.reference.adaptors.adaptors_reference.copied.copied_example" title="copied example">
|
||||
copied example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">copied</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">,</span><span class="number">10</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">copied</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="number">5</span><span class="special">),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adjacent_filtered.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="filtered.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,156 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>filtered</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="copied.html" title="copied">
|
||||
<link rel="next" href="indexed.html" title="indexed">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="copied.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="indexed.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="filtered">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.filtered"></a><a class="link" href="filtered.html" title="filtered">
|
||||
filtered</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="filtered.html#range.reference.adaptors.adaptors_reference.filtered.filtered_example">
|
||||
filtered example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">filtered</span><span class="special">(</span><span class="identifier">pred</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">filter</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">pred</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span> The <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range is convertible to the argument type of <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postcondition:</strong></span> For all adjacent elements
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">]</span></code> in the returned range, <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Throws:</strong></span> Whatever the copy constructor
|
||||
of <code class="computeroutput"><span class="identifier">pred</span></code> might throw.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">ForwardRange</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Returned Range Category:</strong></span><code class="computeroutput"><span class="identifier">ForwardRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="filtered example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.filtered.filtered_example"></a><a class="link" href="filtered.html#range.reference.adaptors.adaptors_reference.filtered.filtered_example" title="filtered example">
|
||||
filtered example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">filtered</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">struct</span> <span class="identifier">is_even</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span> <span class="keyword">int</span> <span class="identifier">x</span> <span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">0</span><span class="special">;</span> <span class="special">}</span>
|
||||
<span class="special">};</span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">filtered</span><span class="special">(</span><span class="identifier">is_even</span><span class="special">()),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">2</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">8</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="copied.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="indexed.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,186 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>indexed</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="filtered.html" title="filtered">
|
||||
<link rel="next" href="indirected.html" title="indirected">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="filtered.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="indirected.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="indexed">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.indexed"></a><a class="link" href="indexed.html" title="indexed">
|
||||
indexed</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="indexed.html#range.reference.adaptors.adaptors_reference.indexed.indexed_example">
|
||||
indexed example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">indexed</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">index</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Returns:</strong></span> A range adapted to return
|
||||
both the element and the associated index. The returned range consists
|
||||
of iterators that have in addition to the usual iterator member functions
|
||||
an <code class="computeroutput"><span class="identifier">index</span><span class="special">()</span></code>
|
||||
member function that returns the appropriate index for the element
|
||||
in the sequence corresponding with the iterator.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">SinglePassRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="indexed example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.indexed.indexed_example"></a><a class="link" href="indexed.html#range.reference.adaptors.adaptors_reference.indexed.indexed_example" title="indexed example">
|
||||
indexed example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">indexed</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Iterator</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">display_element_and_index</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">first</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">last</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">for</span> <span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">it</span> <span class="special">=</span> <span class="identifier">first</span><span class="special">;</span> <span class="identifier">it</span> <span class="special">!=</span> <span class="identifier">last</span><span class="special">;</span> <span class="special">++</span><span class="identifier">it</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Element = "</span> <span class="special"><<</span> <span class="special">*</span><span class="identifier">it</span> <span class="special"><<</span> <span class="string">" Index = "</span> <span class="special"><<</span> <span class="identifier">it</span><span class="special">.</span><span class="identifier">index</span><span class="special">()</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">display_element_and_index</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">display_element_and_index</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">));</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">Iterator1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Iterator2</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">check_element_and_index</span><span class="special">(</span>
|
||||
<span class="identifier">Iterator1</span> <span class="identifier">test_first</span><span class="special">,</span>
|
||||
<span class="identifier">Iterator1</span> <span class="identifier">test_last</span><span class="special">,</span>
|
||||
<span class="identifier">Iterator2</span> <span class="identifier">reference_first</span><span class="special">,</span>
|
||||
<span class="identifier">Iterator2</span> <span class="identifier">reference_last</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">test_first</span><span class="special">,</span> <span class="identifier">test_last</span><span class="special">),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">reference_first</span><span class="special">,</span> <span class="identifier">reference_last</span><span class="special">)</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">reference_index</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">Iterator1</span> <span class="identifier">test_it</span> <span class="special">=</span> <span class="identifier">test_first</span><span class="special">;</span>
|
||||
<span class="identifier">Iterator2</span> <span class="identifier">reference_it</span> <span class="special">=</span> <span class="identifier">reference_first</span><span class="special">;</span>
|
||||
<span class="keyword">for</span> <span class="special">(;</span> <span class="identifier">test_it</span> <span class="special">!=</span> <span class="identifier">test_last</span><span class="special">;</span> <span class="special">++</span><span class="identifier">test_it</span><span class="special">,</span> <span class="special">++</span><span class="identifier">reference_it</span><span class="special">,</span> <span class="special">++</span><span class="identifier">reference_index</span><span class="special">)</span>
|
||||
<span class="special">{</span>
|
||||
<span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span> <span class="special">*</span><span class="identifier">test_it</span><span class="special">,</span> <span class="special">*</span><span class="identifier">reference_it</span> <span class="special">);</span>
|
||||
<span class="identifier">BOOST_CHECK_EQUAL</span><span class="special">(</span> <span class="identifier">test_it</span><span class="special">.</span><span class="identifier">index</span><span class="special">(),</span> <span class="identifier">reference_index</span> <span class="special">);</span>
|
||||
<span class="special">}</span>
|
||||
<span class="special">}</span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">10</span><span class="special">,</span><span class="number">20</span><span class="special">,</span><span class="number">30</span><span class="special">,</span><span class="number">40</span><span class="special">,</span><span class="number">50</span><span class="special">,</span><span class="number">60</span><span class="special">,</span><span class="number">70</span><span class="special">,</span><span class="number">80</span><span class="special">,</span><span class="number">90</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">display_element_and_index</span><span class="special">(</span> <span class="identifier">input</span> <span class="special">|</span> <span class="identifier">indexed</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">Element</span> <span class="special">=</span> <span class="number">10</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">0</span>
|
||||
<span class="identifier">Element</span> <span class="special">=</span> <span class="number">20</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">1</span>
|
||||
<span class="identifier">Element</span> <span class="special">=</span> <span class="number">30</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">2</span>
|
||||
<span class="identifier">Element</span> <span class="special">=</span> <span class="number">40</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">3</span>
|
||||
<span class="identifier">Element</span> <span class="special">=</span> <span class="number">50</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">4</span>
|
||||
<span class="identifier">Element</span> <span class="special">=</span> <span class="number">60</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">5</span>
|
||||
<span class="identifier">Element</span> <span class="special">=</span> <span class="number">70</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">6</span>
|
||||
<span class="identifier">Element</span> <span class="special">=</span> <span class="number">80</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">7</span>
|
||||
<span class="identifier">Element</span> <span class="special">=</span> <span class="number">90</span> <span class="identifier">Index</span> <span class="special">=</span> <span class="number">8</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="filtered.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="indirected.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,146 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>indirected</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="indexed.html" title="indexed">
|
||||
<link rel="next" href="map_keys.html" title="map_keys">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="indexed.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="map_keys.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="indirected">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.indirected"></a><a class="link" href="indirected.html" title="indirected">
|
||||
indirected</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="indirected.html#range.reference.adaptors.adaptors_reference.indirected.indirected_example">
|
||||
indirected example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">indirected</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">indirect</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span> The <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range defines unary <code class="computeroutput"><span class="keyword">operator</span><span class="special">*()</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postcondition:</strong></span> For all elements <code class="computeroutput"><span class="identifier">x</span></code> in the returned range, <code class="computeroutput"><span class="identifier">x</span></code> is the result of <code class="computeroutput"><span class="special">*</span><span class="identifier">y</span></code>
|
||||
where <code class="computeroutput"><span class="identifier">y</span></code> is the corresponding
|
||||
element in the original range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">SinglePassRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="indirected example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.indirected.indirected_example"></a><a class="link" href="indirected.html#range.reference.adaptors.adaptors_reference.indirected.indirected_example" title="indirected example">
|
||||
indirected example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">indirected</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">shared_ptr</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
|
||||
<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
|
||||
<span class="identifier">input</span><span class="special">.</span><span class="identifier">push_back</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="keyword">new</span> <span class="keyword">int</span><span class="special">(</span><span class="identifier">i</span><span class="special">)));</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">indirected</span><span class="special">,</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="indexed.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="map_keys.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,146 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>map_keys</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="indirected.html" title="indirected">
|
||||
<link rel="next" href="map_values.html" title="map_values">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="indirected.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="map_values.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="map_keys">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.map_keys"></a><a class="link" href="map_keys.html" title="map_keys">
|
||||
map_keys</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="map_keys.html#range.reference.adaptors.adaptors_reference.map_keys.map_keys_example">
|
||||
map_keys example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">map_keys</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">keys</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span> The <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range is an instantiation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postcondition:</strong></span> For all elements <code class="computeroutput"><span class="identifier">x</span></code> in the returned range, <code class="computeroutput"><span class="identifier">x</span></code> is the result of <code class="computeroutput"><span class="identifier">y</span><span class="special">.</span><span class="identifier">first</span></code> where <code class="computeroutput"><span class="identifier">y</span></code>
|
||||
is the corresponding element in the original range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">SinglePassRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="map_keys example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.map_keys.map_keys_example"></a><a class="link" href="map_keys.html#range.reference.adaptors.adaptors_reference.map_keys.map_keys_example" title="map_keys example">
|
||||
map_keys example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">map</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">map</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
|
||||
<span class="identifier">input</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">i</span> <span class="special">*</span> <span class="number">10</span><span class="special">));</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">map_keys</span><span class="special">,</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">0</span><span class="special">,</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="indirected.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="map_values.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,146 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>map_values</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="map_keys.html" title="map_keys">
|
||||
<link rel="next" href="replaced.html" title="replaced">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="map_keys.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="replaced.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="map_values">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.map_values"></a><a class="link" href="map_values.html" title="map_values">
|
||||
map_values</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="map_values.html#range.reference.adaptors.adaptors_reference.map_values.map_values_example">
|
||||
map_values example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">map_values</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">values</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span> The <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range is an instantiation of <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postcondition:</strong></span> For all elements <code class="computeroutput"><span class="identifier">x</span></code> in the returned range, <code class="computeroutput"><span class="identifier">x</span></code> is the result of <code class="computeroutput"><span class="identifier">y</span><span class="special">.</span><span class="identifier">second</span></code> where <code class="computeroutput"><span class="identifier">y</span></code>
|
||||
is the corresponding element in the original range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">SinglePassRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="map_values example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.map_values.map_values_example"></a><a class="link" href="map_values.html#range.reference.adaptors.adaptors_reference.map_values.map_values_example" title="map_values example">
|
||||
map_values example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">map</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">map</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="number">10</span><span class="special">;</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
|
||||
<span class="identifier">input</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">i</span> <span class="special">*</span> <span class="number">10</span><span class="special">));</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">map_values</span><span class="special">,</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">0</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">20</span><span class="special">,</span><span class="number">30</span><span class="special">,</span><span class="number">40</span><span class="special">,</span><span class="number">50</span><span class="special">,</span><span class="number">60</span><span class="special">,</span><span class="number">70</span><span class="special">,</span><span class="number">80</span><span class="special">,</span><span class="number">90</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="map_keys.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="replaced.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,161 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>replaced</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="map_values.html" title="map_values">
|
||||
<link rel="next" href="replaced_if.html" title="replaced_if">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="map_values.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="replaced_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="replaced">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.replaced"></a><a class="link" href="replaced.html" title="replaced">
|
||||
replaced</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="replaced.html#range.reference.adaptors.adaptors_reference.replaced.replaced_example">
|
||||
replaced example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">replaced</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">,</span>
|
||||
<span class="identifier">old_value</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">replace</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">new_value</span><span class="special">,</span>
|
||||
<span class="identifier">old_value</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span><div class="itemizedlist"><ul class="itemizedlist" type="circle">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">new_value</span></code> is convertible
|
||||
to the <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">old_value</span></code> is convertible
|
||||
to the <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range.
|
||||
</li>
|
||||
</ul></div>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postcondition:</strong></span> For all elements <code class="computeroutput"><span class="identifier">x</span></code> in the returned range, the value
|
||||
<code class="computeroutput"><span class="identifier">x</span></code> is equal to the value
|
||||
of <code class="computeroutput"><span class="special">(</span><span class="identifier">y</span>
|
||||
<span class="special">==</span> <span class="identifier">old_value</span><span class="special">)</span> <span class="special">?</span> <span class="identifier">new_value</span> <span class="special">:</span>
|
||||
<span class="identifier">y</span></code> where <code class="computeroutput"><span class="identifier">y</span></code>
|
||||
is the corresponding element in the original range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">ForwardRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="replaced example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.replaced.replaced_example"></a><a class="link" href="replaced.html#range.reference.adaptors.adaptors_reference.replaced.replaced_example" title="replaced example">
|
||||
replaced example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">replaced</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">9</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">replaced</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">10</span><span class="special">),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">1</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">9</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="map_values.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="replaced_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,165 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>replaced_if</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="replaced.html" title="replaced">
|
||||
<link rel="next" href="reversed.html" title="reversed">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="replaced.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reversed.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="replaced_if">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.replaced_if"></a><a class="link" href="replaced_if.html" title="replaced_if">
|
||||
replaced_if</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="replaced_if.html#range.reference.adaptors.adaptors_reference.replaced_if.replaced_if_example">
|
||||
replaced_if example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">replaced_if</span><span class="special">(</span><span class="identifier">pred</span><span class="special">,</span>
|
||||
<span class="identifier">new_value</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">replace_if</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">pred</span><span class="special">,</span>
|
||||
<span class="identifier">new_value</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span><div class="itemizedlist"><ul class="itemizedlist" type="circle">
|
||||
<li class="listitem">
|
||||
The range <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
is convertible to the argument type of <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">new_value</span></code> is convertible
|
||||
to the <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range.
|
||||
</li>
|
||||
</ul></div>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postconditions:</strong></span> For all elements
|
||||
<code class="computeroutput"><span class="identifier">x</span></code> in the returned range,
|
||||
the value <code class="computeroutput"><span class="identifier">x</span></code> is equal
|
||||
to the value of <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">)</span> <span class="special">?</span> <span class="identifier">new_value</span> <span class="special">:</span>
|
||||
<span class="identifier">y</span></code> where <code class="computeroutput"><span class="identifier">y</span></code>
|
||||
is the corresponding element in the original range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">ForwardRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="replaced_if example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.replaced_if.replaced_if_example"></a><a class="link" href="replaced_if.html#range.reference.adaptors.adaptors_reference.replaced_if.replaced_if_example" title="replaced_if example">
|
||||
replaced_if example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">replaced_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">struct</span> <span class="identifier">is_even</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span> <span class="special">%</span> <span class="number">2</span> <span class="special">==</span> <span class="number">0</span><span class="special">;</span> <span class="special">}</span>
|
||||
<span class="special">};</span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">replaced_if</span><span class="special">(</span><span class="identifier">is_even</span><span class="special">(),</span> <span class="number">10</span><span class="special">),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">1</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">9</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="replaced.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reversed.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,140 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>reversed</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="replaced_if.html" title="replaced_if">
|
||||
<link rel="next" href="sliced.html" title="sliced">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="replaced_if.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sliced.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="reversed">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.reversed"></a><a class="link" href="reversed.html" title="reversed">
|
||||
reversed</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="reversed.html#range.reference.adaptors.adaptors_reference.reversed.reversed_example">
|
||||
reversed example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reversed</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reverse</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Returns:</strong></span> A range whose iterators behave
|
||||
as if they were the original iterators wrapped in <code class="computeroutput"><span class="identifier">reverse_iterator</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="reversed example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.reversed.reversed_example"></a><a class="link" href="reversed.html#range.reference.adaptors.adaptors_reference.reversed.reversed_example" title="reversed example">
|
||||
reversed example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">reversed</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">void</span> <span class="identifier">reversed_example_test</span><span class="special">()</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">reversed</span><span class="special">,</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">9</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">1</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="replaced_if.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sliced.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,150 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>sliced</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="reversed.html" title="reversed">
|
||||
<link rel="next" href="strided.html" title="strided">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="reversed.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="strided.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="sliced">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.sliced"></a><a class="link" href="sliced.html" title="sliced">
|
||||
sliced</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="sliced.html#range.reference.adaptors.adaptors_reference.sliced.sliced_example">
|
||||
sliced example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">sliced</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span>
|
||||
<span class="identifier">m</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">slice</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">n</span><span class="special">,</span>
|
||||
<span class="identifier">m</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span><code class="computeroutput"><span class="number">0</span>
|
||||
<span class="special"><=</span> <span class="identifier">n</span>
|
||||
<span class="special">&&</span> <span class="identifier">n</span>
|
||||
<span class="special"><=</span> <span class="identifier">m</span>
|
||||
<span class="special">&&</span> <span class="identifier">m</span>
|
||||
<span class="special"><</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Returns:</strong></span><code class="computeroutput"><span class="identifier">make_range</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">m</span><span class="special">)</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="sliced example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.sliced.sliced_example"></a><a class="link" href="sliced.html#range.reference.adaptors.adaptors_reference.sliced.sliced_example" title="sliced example">
|
||||
sliced example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">sliced</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">sliced</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">5</span><span class="special">),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="reversed.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="strided.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,147 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>strided</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="sliced.html" title="sliced">
|
||||
<link rel="next" href="tokenized.html" title="tokenized">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="sliced.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tokenized.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="strided">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.strided"></a><a class="link" href="strided.html" title="strided">
|
||||
strided</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="strided.html#range.reference.adaptors.adaptors_reference.strided.strided_example">
|
||||
strided example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">strided</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">stride</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">n</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span><code class="computeroutput"><span class="number">0</span>
|
||||
<span class="special"><=</span> <span class="identifier">n</span>
|
||||
<span class="special">&&</span> <span class="identifier">n</span>
|
||||
<span class="special"><</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Returns:</strong></span> A new range based on <code class="computeroutput"><span class="identifier">rng</span></code> where traversal is performed
|
||||
in steps of <code class="computeroutput"><span class="identifier">n</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="strided example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.strided.strided_example"></a><a class="link" href="strided.html#range.reference.adaptors.adaptors_reference.strided.strided_example" title="strided example">
|
||||
strided example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">strided</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">,</span><span class="number">10</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">strided</span><span class="special">(</span><span class="number">2</span><span class="special">),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">1</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">9</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="sliced.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="tokenized.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,143 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>tokenized</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="strided.html" title="strided">
|
||||
<link rel="next" href="transformed.html" title="transformed">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="strided.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="transformed.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="tokenized">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.tokenized"></a><a class="link" href="tokenized.html" title="tokenized">
|
||||
tokenized</a>
|
||||
</h5></div></div></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenized</span><span class="special">(</span><span class="identifier">regex</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenized</span><span class="special">(</span><span class="identifier">regex</span><span class="special">,</span> <span class="identifier">i</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenized</span><span class="special">(</span><span class="identifier">regex</span><span class="special">,</span> <span class="identifier">rndRng</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenized</span><span class="special">(</span><span class="identifier">regex</span><span class="special">,</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenized</span><span class="special">(</span><span class="identifier">regex</span><span class="special">,</span> <span class="identifier">rndRng</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">regex</span><span class="special">)</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">regex</span><span class="special">,</span> <span class="identifier">i</span><span class="special">)</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">regex</span><span class="special">,</span> <span class="identifier">rndRng</span><span class="special">)</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">regex</span><span class="special">,</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenize</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span> <span class="identifier">regex</span><span class="special">,</span> <span class="identifier">rndRng</span><span class="special">,</span> <span class="identifier">flags</span><span class="special">)</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span><div class="itemizedlist"><ul class="itemizedlist" type="circle">
|
||||
<li class="listitem">
|
||||
Let <code class="computeroutput"><span class="identifier">T</span></code> denote <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">range_value</span><span class="special"><</span><span class="identifier">decltype</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)>::</span><span class="identifier">type</span></code>,
|
||||
then <code class="computeroutput"><span class="identifier">regex</span></code> has
|
||||
the type <code class="computeroutput"><span class="identifier">basic_regex</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span></code> or is implicitly convertible
|
||||
to one of these types.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">i</span></code> has the type
|
||||
<code class="computeroutput"><span class="keyword">int</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
the <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of <code class="computeroutput"><span class="identifier">rndRng</span></code> is <code class="computeroutput"><span class="keyword">int</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">flags</span></code> has the type
|
||||
<code class="computeroutput"><span class="identifier">regex_constants</span><span class="special">::</span><span class="identifier">syntax_option_type</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Returns:</strong></span> A range whose iterators behave
|
||||
as if they were the original iterators wrapped in <code class="computeroutput"><span class="identifier">regex_token_iterator</span></code>.
|
||||
The first iterator in the range would be constructed by forwarding
|
||||
all the arguments of <code class="computeroutput"><span class="identifier">tokenized</span><span class="special">()</span></code> to the <code class="computeroutput"><span class="identifier">regex_token_iterator</span></code>
|
||||
constructor.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Throws:</strong></span> Whatever constructing and
|
||||
copying equivalent <code class="computeroutput"><span class="identifier">regex_token_iterator</span></code>s
|
||||
might throw.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="strided.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="transformed.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,156 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>transformed</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="tokenized.html" title="tokenized">
|
||||
<link rel="next" href="uniqued.html" title="uniqued">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="tokenized.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="uniqued.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="transformed">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.transformed"></a><a class="link" href="transformed.html" title="transformed">
|
||||
transformed</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="transformed.html#range.reference.adaptors.adaptors_reference.transformed.transformed_example">
|
||||
transformed example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">transformed</span><span class="special">(</span><span class="identifier">fun</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">transform</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">fun</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span> The <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range is convertible to the argument type of <code class="computeroutput"><span class="identifier">fun</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postcondition:</strong></span> For all elements <code class="computeroutput"><span class="identifier">x</span></code> in the returned range, <code class="computeroutput"><span class="identifier">x</span></code> is the result of <code class="computeroutput"><span class="identifier">fun</span><span class="special">(</span><span class="identifier">y</span><span class="special">)</span></code>
|
||||
where <code class="computeroutput"><span class="identifier">y</span></code> is the corresponding
|
||||
element in the original range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Throws:</strong></span> Whatever the copy-constructor
|
||||
of <code class="computeroutput"><span class="identifier">fun</span></code> might throw.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">SinglePassRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="transformed example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.transformed.transformed_example"></a><a class="link" href="transformed.html#range.reference.adaptors.adaptors_reference.transformed.transformed_example" title="transformed example">
|
||||
transformed example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">transformed</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">struct</span> <span class="identifier">double_int</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">typedef</span> <span class="keyword">int</span> <span class="identifier">result_type</span><span class="special">;</span>
|
||||
<span class="keyword">int</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">int</span> <span class="identifier">x</span><span class="special">)</span> <span class="keyword">const</span> <span class="special">{</span> <span class="keyword">return</span> <span class="identifier">x</span> <span class="special">*</span> <span class="number">2</span><span class="special">;</span> <span class="special">}</span>
|
||||
<span class="special">};</span>
|
||||
|
||||
<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span> <span class="identifier">argv</span><span class="special">[])</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">7</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">9</span><span class="special">,</span><span class="number">10</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">transformed</span><span class="special">(</span><span class="identifier">double_int</span><span class="special">()),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
|
||||
<span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">2</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">6</span><span class="special">,</span><span class="number">8</span><span class="special">,</span><span class="number">10</span><span class="special">,</span><span class="number">12</span><span class="special">,</span><span class="number">14</span><span class="special">,</span><span class="number">16</span><span class="special">,</span><span class="number">18</span><span class="special">,</span><span class="number">20</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="tokenized.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="uniqued.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,142 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>uniqued</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors_reference.html" title="Reference">
|
||||
<link rel="prev" href="transformed.html" title="transformed">
|
||||
<link rel="next" href="../../algorithms.html" title="Range Algorithm">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="transformed.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="uniqued">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.uniqued"></a><a class="link" href="uniqued.html" title="uniqued">
|
||||
uniqued</a>
|
||||
</h5></div></div></div>
|
||||
<div class="toc"><dl><dt><span class="section"><a href="uniqued.html#range.reference.adaptors.adaptors_reference.uniqued.uniqued_example">
|
||||
uniqued example</a></span></dt></dl></div>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Syntax
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Code
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Pipe
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span> <span class="special">|</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">uniqued</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
Function
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">unique</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Precondition:</strong></span> The <code class="computeroutput"><span class="identifier">value_type</span></code>
|
||||
of the range is comparable with <code class="computeroutput"><span class="keyword">operator</span><span class="special">==()</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Postcondition:</strong></span> For all adjacent elements
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code> in the returned range, <code class="computeroutput"><span class="identifier">x</span><span class="special">==</span><span class="identifier">y</span></code> is false.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<span class="bold"><strong>Range Category:</strong></span><code class="computeroutput"><span class="identifier">ForwardRange</span></code>
|
||||
</li>
|
||||
</ul></div>
|
||||
<div class="section" title="uniqued example">
|
||||
<div class="titlepage"><div><div><h6 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_reference.uniqued.uniqued_example"></a><a class="link" href="uniqued.html#range.reference.adaptors.adaptors_reference.uniqued.uniqued_example" title="uniqued example">
|
||||
uniqued example</a>
|
||||
</h6></div></div></div>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">adaptor</span><span class="special">/</span><span class="identifier">uniqued</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">assign</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">algorithm</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">iostream</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">void</span> <span class="identifier">uniqued_example_test</span><span class="special">()</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">assign</span><span class="special">;</span>
|
||||
<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">input</span><span class="special">;</span>
|
||||
<span class="identifier">input</span> <span class="special">+=</span> <span class="number">1</span><span class="special">,</span><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span>
|
||||
<span class="identifier">input</span> <span class="special">|</span> <span class="identifier">uniqued</span><span class="special">,</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">","</span><span class="special">));</span>
|
||||
<span class="special">}</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<p>
|
||||
This would produce the output:
|
||||
</p>
|
||||
<pre class="programlisting"><span class="number">1</span><span class="special">,</span><span class="number">2</span><span class="special">,</span><span class="number">3</span><span class="special">,</span><span class="number">4</span><span class="special">,</span><span class="number">5</span><span class="special">,</span><span class="number">6</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="transformed.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors_reference.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../../algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,67 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Synopsis</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../adaptors.html" title="Range Adaptors">
|
||||
<link rel="prev" href="adaptors_introduction.html" title="Introduction and motivation">
|
||||
<link rel="next" href="adaptors_general_requirements.html" title="General Requirements">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adaptors_introduction.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors_general_requirements.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Synopsis">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.adaptors.adaptors_synopsis"></a><a class="link" href="adaptors_synopsis.html" title="Synopsis"> Synopsis</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
The library provides the following Adapter Generator expressions:
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">adjacent_filtered</span><span class="special">(</span><span class="identifier">bi_pred</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">copied</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span><span class="identifier">m</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">filtered</span><span class="special">(</span><span class="identifier">pred</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">indexed</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">indirected</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">map_keys</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">map_values</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">replaced</span><span class="special">(</span><span class="identifier">new_value</span><span class="special">,</span> <span class="identifier">old_value</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">replaced_if</span><span class="special">(</span><span class="identifier">pred</span><span class="special">,</span> <span class="identifier">new_value</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">reversed</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">sliced</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="identifier">m</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">strided</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">tokenized</span><span class="special">(</span> <span class="special"><</span><span class="identifier">see</span> <span class="identifier">arguments</span> <span class="identifier">below</span><span class="special">></span> <span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">transformed</span><span class="special">(</span><span class="identifier">fun</span><span class="special">)</span>
|
||||
<span class="identifier">rng</span> <span class="special">|</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">uniqued</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adaptors_introduction.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors_general_requirements.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,59 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm</title>
|
||||
<link rel="stylesheet" href="../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../reference.html" title="Reference">
|
||||
<link rel="prev" href="adaptors/adaptors_reference/uniqued.html" title="uniqued">
|
||||
<link rel="next" href="algorithms/range_algorithm_introduction.html" title="Introduction and motivation">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adaptors/adaptors_reference/uniqued.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="algorithms/range_algorithm_introduction.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm">
|
||||
<div class="titlepage"><div><div><h3 class="title">
|
||||
<a name="range.reference.algorithms"></a><a class="link" href="algorithms.html" title="Range Algorithm"> Range Algorithm</a>
|
||||
</h3></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="algorithms/range_algorithm_introduction.html">
|
||||
Introduction and motivation</a></span></dt>
|
||||
<dt><span class="section"><a href="algorithms/range_algorithm_mutating_algorithms.html">
|
||||
Mutating algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="algorithms/range_algorithm_non_mutating_algorithms.html">
|
||||
Non-mutating algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="algorithms/set_algorithms.html"> Set algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="algorithms/heap_algorithms.html"> Heap algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="algorithms/permutation_algorithms.html">
|
||||
Permutation algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="algorithms/range_algorithm_new_algorithms.html">
|
||||
New algorithms</a></span></dt>
|
||||
<dt><span class="section"><a href="algorithms/range_numeric.html"> Numeric
|
||||
algorithms</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adaptors/adaptors_reference/uniqued.html"><img src="../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="algorithms/range_algorithm_introduction.html"><img src="../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,51 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Heap algorithms</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../algorithms.html" title="Range Algorithm">
|
||||
<link rel="prev" href="set_algorithms/set_symmetric_difference.html" title="set_symmetric_difference">
|
||||
<link rel="next" href="heap_algorithms/push_heap.html" title="push_heap">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="set_algorithms/set_symmetric_difference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="heap_algorithms/push_heap.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Heap algorithms">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.algorithms.heap_algorithms"></a><a class="link" href="heap_algorithms.html" title="Heap algorithms"> Heap algorithms</a>
|
||||
</h4></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="heap_algorithms/push_heap.html">
|
||||
push_heap</a></span></dt>
|
||||
<dt><span class="section"><a href="heap_algorithms/pop_heap.html">
|
||||
pop_heap</a></span></dt>
|
||||
<dt><span class="section"><a href="heap_algorithms/make_heap.html">
|
||||
make_heap</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="set_algorithms/set_symmetric_difference.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="heap_algorithms/push_heap.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,144 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>make_heap</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../heap_algorithms.html" title="Heap algorithms">
|
||||
<link rel="prev" href="pop_heap.html" title="pop_heap">
|
||||
<link rel="next" href="../permutation_algorithms.html" title="Permutation algorithms">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="pop_heap.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../permutation_algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="make_heap">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.heap_algorithms.make_heap"></a><a class="link" href="make_heap.html" title="make_heap">
|
||||
make_heap</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.heap_algorithms.make_heap.prototype"></a><h6>
|
||||
<a name="id3252496"></a>
|
||||
<a class="link" href="make_heap.html#range.reference.algorithms.heap_algorithms.make_heap.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">make_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">make_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">make_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">make_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.make_heap.description"></a><h6>
|
||||
<a name="id3252846"></a>
|
||||
<a class="link" href="make_heap.html#range.reference.algorithms.heap_algorithms.make_heap.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">make_heap</span></code> turns <code class="computeroutput"><span class="identifier">rng</span></code> into a heap.
|
||||
</p>
|
||||
<p>
|
||||
The ordering relationship is determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> in the non-predicate versions, and
|
||||
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
|
||||
the predicate versions.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.make_heap.definition"></a><h6>
|
||||
<a name="id3252927"></a>
|
||||
<a class="link" href="make_heap.html#range.reference.algorithms.heap_algorithms.make_heap.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.make_heap.requirements"></a><h6>
|
||||
<a name="id3253000"></a>
|
||||
<a class="link" href="make_heap.html#range.reference.algorithms.heap_algorithms.make_heap.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Compare</span></code> is a model
|
||||
of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">Compare</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.heap_algorithms.make_heap.complexity"></a><h6>
|
||||
<a name="id3253236"></a>
|
||||
<a class="link" href="make_heap.html#range.reference.algorithms.heap_algorithms.make_heap.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="number">3</span> <span class="special">*</span>
|
||||
<span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="pop_heap.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../permutation_algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,156 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>pop_heap</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../heap_algorithms.html" title="Heap algorithms">
|
||||
<link rel="prev" href="push_heap.html" title="push_heap">
|
||||
<link rel="next" href="make_heap.html" title="make_heap">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="push_heap.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="make_heap.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="pop_heap">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.heap_algorithms.pop_heap"></a><a class="link" href="pop_heap.html" title="pop_heap">
|
||||
pop_heap</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.heap_algorithms.pop_heap.prototype"></a><h6>
|
||||
<a name="id3251517"></a>
|
||||
<a class="link" href="pop_heap.html#range.reference.algorithms.heap_algorithms.pop_heap.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">pop_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">pop_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">pop_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">pop_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.pop_heap.description"></a><h6>
|
||||
<a name="id3251867"></a>
|
||||
<a class="link" href="pop_heap.html#range.reference.algorithms.heap_algorithms.pop_heap.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">pop_heap</span></code> removes the
|
||||
largest element from the heap. It is assumed that <code class="computeroutput"><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">prior</span><span class="special">(</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is already a heap and that the element
|
||||
to be added is <code class="computeroutput"><span class="special">*</span><span class="identifier">prior</span><span class="special">(</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
The ordering relationship is determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> in the non-predicate versions, and
|
||||
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
|
||||
the predicate versions.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.pop_heap.definition"></a><h6>
|
||||
<a name="id3252027"></a>
|
||||
<a class="link" href="pop_heap.html#range.reference.algorithms.heap_algorithms.pop_heap.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.pop_heap.requirements"></a><h6>
|
||||
<a name="id3252099"></a>
|
||||
<a class="link" href="pop_heap.html#range.reference.algorithms.heap_algorithms.pop_heap.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Compare</span></code> is a model
|
||||
of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">Compare</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.heap_algorithms.pop_heap.precondition_"></a><h6>
|
||||
<a name="id3252335"></a>
|
||||
<a class="link" href="pop_heap.html#range.reference.algorithms.heap_algorithms.pop_heap.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem"><code class="computeroutput"><span class="special">!</span><span class="identifier">empty</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code></li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> is a heap.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.heap_algorithms.pop_heap.complexity"></a><h6>
|
||||
<a name="id3252407"></a>
|
||||
<a class="link" href="pop_heap.html#range.reference.algorithms.heap_algorithms.pop_heap.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Logarithmic. At most <code class="computeroutput"><span class="number">2</span> <span class="special">*</span>
|
||||
<span class="identifier">log</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>
|
||||
comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="push_heap.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="make_heap.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,154 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>push_heap</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../heap_algorithms.html" title="Heap algorithms">
|
||||
<link rel="prev" href="../heap_algorithms.html" title="Heap algorithms">
|
||||
<link rel="next" href="pop_heap.html" title="pop_heap">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../heap_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="pop_heap.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="push_heap">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.heap_algorithms.push_heap"></a><a class="link" href="push_heap.html" title="push_heap">
|
||||
push_heap</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.heap_algorithms.push_heap.prototype"></a><h6>
|
||||
<a name="id3250497"></a>
|
||||
<a class="link" href="push_heap.html#range.reference.algorithms.heap_algorithms.push_heap.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">push_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">push_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">push_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">push_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.push_heap.description"></a><h6>
|
||||
<a name="id3250848"></a>
|
||||
<a class="link" href="push_heap.html#range.reference.algorithms.heap_algorithms.push_heap.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">push_heap</span></code> adds an element
|
||||
to a heap. It is assumed that <code class="computeroutput"><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>, <code class="computeroutput"><span class="identifier">prior</span><span class="special">(</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is already a heap and that the element
|
||||
to be added is <code class="computeroutput"><span class="special">*</span><span class="identifier">prior</span><span class="special">(</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
The ordering relationship is determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> in the non-predicate versions, and
|
||||
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
|
||||
the predicate versions.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.push_heap.definition"></a><h6>
|
||||
<a name="id3251013"></a>
|
||||
<a class="link" href="push_heap.html#range.reference.algorithms.heap_algorithms.push_heap.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.heap_algorithms.push_heap.requirements"></a><h6>
|
||||
<a name="id3251086"></a>
|
||||
<a class="link" href="push_heap.html#range.reference.algorithms.heap_algorithms.push_heap.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Compare</span></code> is a model
|
||||
of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">Compare</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.heap_algorithms.push_heap.precondition_"></a><h6>
|
||||
<a name="id3251322"></a>
|
||||
<a class="link" href="push_heap.html#range.reference.algorithms.heap_algorithms.push_heap.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem"><code class="computeroutput"><span class="special">!</span><span class="identifier">empty</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code></li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">prior</span><span class="special">(</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)))</span></code> is a heap.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.heap_algorithms.push_heap.complexity"></a><h6>
|
||||
<a name="id3251439"></a>
|
||||
<a class="link" href="push_heap.html#range.reference.algorithms.heap_algorithms.push_heap.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Logarithmic. At most <code class="computeroutput"><span class="identifier">log</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../heap_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="pop_heap.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,50 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Permutation algorithms</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../algorithms.html" title="Range Algorithm">
|
||||
<link rel="prev" href="heap_algorithms/make_heap.html" title="make_heap">
|
||||
<link rel="next" href="permutation_algorithms/next_permutation.html" title="next_permutation">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="heap_algorithms/make_heap.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="permutation_algorithms/next_permutation.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Permutation algorithms">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.algorithms.permutation_algorithms"></a><a class="link" href="permutation_algorithms.html" title="Permutation algorithms">
|
||||
Permutation algorithms</a>
|
||||
</h4></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="permutation_algorithms/next_permutation.html">
|
||||
next_permutation</a></span></dt>
|
||||
<dt><span class="section"><a href="permutation_algorithms/prev_permutation.html">
|
||||
prev_permutation</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="heap_algorithms/make_heap.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="permutation_algorithms/next_permutation.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,149 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>next_permutation</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../permutation_algorithms.html" title="Permutation algorithms">
|
||||
<link rel="prev" href="../permutation_algorithms.html" title="Permutation algorithms">
|
||||
<link rel="next" href="prev_permutation.html" title="prev_permutation">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../permutation_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../permutation_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="prev_permutation.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="next_permutation">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.permutation_algorithms.next_permutation"></a><a class="link" href="next_permutation.html" title="next_permutation">
|
||||
next_permutation</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.next_permutation.prototype"></a><h6>
|
||||
<a name="id3253337"></a>
|
||||
<a class="link" href="next_permutation.html#range.reference.algorithms.permutation_algorithms.next_permutation.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">next_permutation</span><span class="special">(</span><span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">next_permutation</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">next_permutation</span><span class="special">(</span><span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">next_permutation</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.next_permutation.description"></a><h6>
|
||||
<a name="id3253689"></a>
|
||||
<a class="link" href="next_permutation.html#range.reference.algorithms.permutation_algorithms.next_permutation.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">next_permutation</span></code> transforms
|
||||
the range of elements <code class="computeroutput"><span class="identifier">rng</span></code>
|
||||
into the lexicographically next greater permutation of the elements if
|
||||
such a permutation exists. If one does not exist then the range is transformed
|
||||
into the lexicographically smallest permutation and <code class="computeroutput"><span class="keyword">false</span></code>
|
||||
is returned. <code class="computeroutput"><span class="keyword">true</span></code> is returned
|
||||
when the next greater permutation is successfully generated.
|
||||
</p>
|
||||
<p>
|
||||
The ordering relationship is determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> in the non-predicate versions, and
|
||||
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
|
||||
the predicate versions.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.next_permutation.definition"></a><h6>
|
||||
<a name="id3253796"></a>
|
||||
<a class="link" href="next_permutation.html#range.reference.algorithms.permutation_algorithms.next_permutation.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">permutation</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.next_permutation.requirements"></a><h6>
|
||||
<a name="id3253871"></a>
|
||||
<a class="link" href="next_permutation.html#range.reference.algorithms.permutation_algorithms.next_permutation.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is a model of the <a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>'s
|
||||
value type is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is a model of the <a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Compare</span></code> is a model
|
||||
of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">Compare</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.next_permutation.complexity"></a><h6>
|
||||
<a name="id3254107"></a>
|
||||
<a class="link" href="next_permutation.html#range.reference.algorithms.permutation_algorithms.next_permutation.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">/</span> <span class="number">2</span></code>
|
||||
swaps.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../permutation_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../permutation_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="prev_permutation.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,149 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>prev_permutation</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../permutation_algorithms.html" title="Permutation algorithms">
|
||||
<link rel="prev" href="next_permutation.html" title="next_permutation">
|
||||
<link rel="next" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="next_permutation.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../permutation_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="prev_permutation">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.permutation_algorithms.prev_permutation"></a><a class="link" href="prev_permutation.html" title="prev_permutation">
|
||||
prev_permutation</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.prev_permutation.prototype"></a><h6>
|
||||
<a name="id3254191"></a>
|
||||
<a class="link" href="prev_permutation.html#range.reference.algorithms.permutation_algorithms.prev_permutation.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">prev_permutation</span><span class="special">(</span><span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">prev_permutation</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">prev_permutation</span><span class="special">(</span><span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Compare</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">prev_permutation</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.prev_permutation.description"></a><h6>
|
||||
<a name="id3254541"></a>
|
||||
<a class="link" href="prev_permutation.html#range.reference.algorithms.permutation_algorithms.prev_permutation.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">prev_permutation</span></code> transforms
|
||||
the range of elements <code class="computeroutput"><span class="identifier">rng</span></code>
|
||||
into the lexicographically next smaller permutation of the elements if
|
||||
such a permutation exists. If one does not exist then the range is transformed
|
||||
into the lexicographically largest permutation and <code class="computeroutput"><span class="keyword">false</span></code>
|
||||
is returned. <code class="computeroutput"><span class="keyword">true</span></code> is returned
|
||||
when the next smaller permutation is successfully generated.
|
||||
</p>
|
||||
<p>
|
||||
The ordering relationship is determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> in the non-predicate versions, and
|
||||
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
|
||||
the predicate versions.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.prev_permutation.definition"></a><h6>
|
||||
<a name="id3254651"></a>
|
||||
<a class="link" href="prev_permutation.html#range.reference.algorithms.permutation_algorithms.prev_permutation.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">permutation</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.prev_permutation.requirements"></a><h6>
|
||||
<a name="id3254725"></a>
|
||||
<a class="link" href="prev_permutation.html#range.reference.algorithms.permutation_algorithms.prev_permutation.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is a model of the <a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>'s
|
||||
value type is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is a model of the <a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Compare</span></code> is a model
|
||||
of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">Compare</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.permutation_algorithms.prev_permutation.complexity"></a><h6>
|
||||
<a name="id3254962"></a>
|
||||
<a class="link" href="prev_permutation.html#range.reference.algorithms.permutation_algorithms.prev_permutation.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">/</span> <span class="number">2</span></code>
|
||||
swaps.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="next_permutation.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../permutation_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,257 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Introduction and motivation</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../algorithms.html" title="Range Algorithm">
|
||||
<link rel="prev" href="../algorithms.html" title="Range Algorithm">
|
||||
<link rel="next" href="range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../algorithms.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_algorithm_mutating_algorithms.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Introduction and motivation">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_introduction"></a><a class="link" href="range_algorithm_introduction.html" title="Introduction and motivation">
|
||||
Introduction and motivation</a>
|
||||
</h4></div></div></div>
|
||||
<p>
|
||||
In its most simple form a <span class="bold"><strong>Range Algorithm</strong></span>
|
||||
(or range-based algorithm) is simply an iterator-based algorithm where
|
||||
the <span class="emphasis"><em>two</em></span> iterator arguments have been replaced by
|
||||
<span class="emphasis"><em>one</em></span> range argument. For example, we may write
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">vector</span><span class="special">></span>
|
||||
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span> <span class="special">=</span> <span class="special">...;</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">sort</span><span class="special">(</span><span class="identifier">vec</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
instead of
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">sort</span><span class="special">(</span><span class="identifier">vec</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">vec</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
However, the return type of range algorithms is almost always different
|
||||
from that of existing iterator-based algorithms.
|
||||
</p>
|
||||
<p>
|
||||
One group of algorithms, like <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sort</span><span class="special">()</span></code>, will simply return the same range so
|
||||
that we can continue to pass the range around and/or further modify it.
|
||||
Because of this we may write
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">:</span><span class="identifier">unique</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sort</span><span class="special">(</span><span class="identifier">vec</span><span class="special">));</span>
|
||||
</pre>
|
||||
<p>
|
||||
to first sort the range and then run <code class="computeroutput"><span class="identifier">unique</span><span class="special">()</span></code> on the sorted range.
|
||||
</p>
|
||||
<p>
|
||||
Algorithms like <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special">()</span></code>
|
||||
fall into another group of algorithms that return (potentially) narrowed
|
||||
views of the original range. By default <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> returns the range <code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">found</span><span class="special">)</span></code>
|
||||
where <code class="computeroutput"><span class="identifier">found</span></code> denotes the
|
||||
iterator returned by <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">unique</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>
|
||||
</p>
|
||||
<p>
|
||||
Therefore exactly the unique values can be copied by writing
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">copy</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sort</span><span class="special">(</span><span class="identifier">vec</span><span class="special">)),</span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special"><</span><span class="keyword">int</span><span class="special">>(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">));</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Algorithms like <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span></code> usually return the same range:
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">found</span><span class="special">)</span></code>. However, this behaviour may be changed
|
||||
by supplying the algorithms with a template argument:
|
||||
</p>
|
||||
<div class="informaltable"><table class="table">
|
||||
<colgroup>
|
||||
<col>
|
||||
<col>
|
||||
</colgroup>
|
||||
<thead><tr>
|
||||
<th>
|
||||
<p>
|
||||
Expression
|
||||
</p>
|
||||
</th>
|
||||
<th>
|
||||
<p>
|
||||
Return
|
||||
</p>
|
||||
</th>
|
||||
</tr></thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_found</span><span class="special">>(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
returns a single iterator like <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">unique</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_begin_found</span><span class="special">>(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
returns the range <code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span>
|
||||
<span class="identifier">found</span><span class="special">)</span></code>
|
||||
(this is the default)
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_begin_next</span><span class="special">>(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
returns the range <code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">next</span><span class="special">(</span><span class="identifier">found</span><span class="special">))</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_found_end</span><span class="special">>(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
returns the range <code class="computeroutput"><span class="special">[</span><span class="identifier">found</span><span class="special">,</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_next_end</span><span class="special">>(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
returns the range <code class="computeroutput"><span class="special">[</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">next</span><span class="special">(</span><span class="identifier">found</span><span class="special">),</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_begin_end</span><span class="special">>(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<p>
|
||||
returns the entire original range.
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table></div>
|
||||
<p>
|
||||
This functionality has the following advantages:
|
||||
</p>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
it allows for <span class="emphasis"><em><span class="bold"><strong>seamless functional-style
|
||||
programming</strong></span></em></span> where you do not need to use named
|
||||
local variables to store intermediate results
|
||||
</li>
|
||||
<li class="listitem">
|
||||
it is very <span class="emphasis"><em><span class="bold"><strong>safe</strong></span></em></span>
|
||||
because the algorithm can verify out-of-bounds conditions and handle
|
||||
tricky conditions that lead to empty ranges
|
||||
</li>
|
||||
</ol></div>
|
||||
<p>
|
||||
For example, consider how easy we may erase the duplicates in a sorted
|
||||
container:
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="identifier">vec</span> <span class="special">=</span> <span class="special">...;</span>
|
||||
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_found_end</span><span class="special">>(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sort</span><span class="special">(</span><span class="identifier">vec</span><span class="special">)));</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
Notice the use of <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_found_end</span></code>.
|
||||
What if we wanted to erase all the duplicates except one of them? In old-fashined
|
||||
STL-programming we might write
|
||||
</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="comment">// assume 'vec' is already sorted
|
||||
</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">iterator</span> <span class="identifier">i</span> <span class="special">=</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">unique</span><span class="special">(</span><span class="identifier">vec</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">vec</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
|
||||
|
||||
<span class="comment">// remember this check or you get into problems
|
||||
</span><span class="keyword">if</span> <span class="special">(</span><span class="identifier">i</span> <span class="special">!=</span> <span class="identifier">vec</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span>
|
||||
<span class="special">++</span><span class="identifier">i</span><span class="special">;</span>
|
||||
|
||||
<span class="identifier">vec</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">vec</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<p>
|
||||
The same task may be accomplished simply with
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">vec</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">unique</span><span class="special"><</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_next_end</span><span class="special">>(</span><span class="identifier">vec</span><span class="special">));</span>
|
||||
</pre>
|
||||
<p>
|
||||
and there is no need to worry about generating an invalid range. Furthermore,
|
||||
if the container is complex, calling <code class="computeroutput"><span class="identifier">vec</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span></code> several times will be more expensive
|
||||
than using a range algorithm.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../algorithms.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_algorithm_mutating_algorithms.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,86 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Mutating algorithms</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../algorithms.html" title="Range Algorithm">
|
||||
<link rel="prev" href="range_algorithm_introduction.html" title="Introduction and motivation">
|
||||
<link rel="next" href="range_algorithm_mutating_algorithms/copy.html" title="Range Algorithm - copy">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="range_algorithm_introduction.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_algorithm_mutating_algorithms/copy.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Mutating algorithms">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms"></a><a class="link" href="range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
Mutating algorithms</a>
|
||||
</h4></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/copy.html">
|
||||
Range Algorithm - copy</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/copy_backward.html">
|
||||
Range Algorithm - copy_backward</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/fill.html">
|
||||
Range Algorithm - fill</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/generate.html">
|
||||
Range Algorithm - generate</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/inplace_merge.html">
|
||||
Range Algorithm - inplace_merge</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/merge.html">
|
||||
Range Algorithm - merge</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/nth_element.html">
|
||||
Range Algorithm - nth_element</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/partial_sort.html">
|
||||
Range Algorithm - partial_sort</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/partition.html">
|
||||
Range Algorithm - partition</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/random_shuffle.html">
|
||||
Range Algorithm - random_shuffle</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/remove.html">
|
||||
Range Algorithm - remove</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/remove_if.html">
|
||||
Range Algorithm - remove_if</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/replace.html">
|
||||
Range Algorithm - replace</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/replace_if.html">
|
||||
Range Algorithm - replace_if</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/rotate.html">
|
||||
Range Algorithm - rotate</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/sort.html">
|
||||
Range Algorithm - sort</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/stable_partition.html">
|
||||
Range Algorithm - stable_partition</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/stable_sort.html">
|
||||
Range Algorithm - stable_sort</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/transform.html">
|
||||
Range Algorithm - transform</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_mutating_algorithms/unique.html">
|
||||
Range Algorithm - unique</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="range_algorithm_introduction.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_algorithm_mutating_algorithms/copy.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,116 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - copy</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="next" href="copy_backward.html" title="Range Algorithm - copy_backward">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="copy_backward.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - copy">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy"></a><a class="link" href="copy.html" title="Range Algorithm - copy">
|
||||
Range Algorithm - copy</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy.prototype"></a><h6>
|
||||
<a name="id3199494"></a>
|
||||
<a class="link" href="copy.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">></span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">copy</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">source_rng</span><span class="special">,</span> <span class="identifier">OutputIterator</span> <span class="identifier">out_it</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy.description"></a><h6>
|
||||
<a name="id3199626"></a>
|
||||
<a class="link" href="copy.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">copy</span></code> copies all elements
|
||||
from <code class="computeroutput"><span class="identifier">source_rng</span></code> to the
|
||||
range <code class="computeroutput"><span class="special">[</span><span class="identifier">out_it</span><span class="special">,</span> <span class="identifier">out_it</span>
|
||||
<span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">))</span></code>. The return value is <code class="computeroutput"><span class="identifier">out_it</span> <span class="special">+</span>
|
||||
<span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">)</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy.definition"></a><h6>
|
||||
<a name="id3199761"></a>
|
||||
<a class="link" href="copy.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy.requirements"></a><h6>
|
||||
<a name="id3199835"></a>
|
||||
<a class="link" href="copy.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">OutputIterator</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">OutputIteratorConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The <code class="computeroutput"><span class="identifier">value_type</span></code> of
|
||||
<a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single Pass Range</a>
|
||||
Concept is convertible to a type in <code class="computeroutput"><span class="identifier">OutputIterator</span></code>'s
|
||||
set of value types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy.precondition_"></a><h6>
|
||||
<a name="id3199946"></a>
|
||||
<a class="link" href="copy.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">out_it</span></code> is not an iterator
|
||||
within the <code class="computeroutput"><span class="identifier">source_rng</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out_it</span><span class="special">,</span> <span class="identifier">out_it</span>
|
||||
<span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">))</span></code> is a valid range.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy.complexity"></a><h6>
|
||||
<a name="id3200052"></a>
|
||||
<a class="link" href="copy.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">)</span></code> assignments are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="copy_backward.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+125
@@ -0,0 +1,125 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - copy_backward</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="copy.html" title="Range Algorithm - copy">
|
||||
<link rel="next" href="fill.html" title="Range Algorithm - fill">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="copy.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="fill.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - copy_backward">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward"></a><a class="link" href="copy_backward.html" title="Range Algorithm - copy_backward">
|
||||
Range Algorithm - copy_backward</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.prototype"></a><h6>
|
||||
<a name="id3200124"></a>
|
||||
<a class="link" href="copy_backward.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BidirectionalOutputIterator</span><span class="special">></span>
|
||||
<span class="identifier">BidirectionalOutputIterator</span>
|
||||
<span class="identifier">copy_backward</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">source_rng</span><span class="special">,</span>
|
||||
<span class="identifier">BidirectionalOutputIterator</span> <span class="identifier">out_it</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.description"></a><h6>
|
||||
<a name="id3200258"></a>
|
||||
<a class="link" href="copy_backward.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">copy_backward</span></code> copies
|
||||
all elements from <code class="computeroutput"><span class="identifier">source_rng</span></code>
|
||||
to the range <code class="computeroutput"><span class="special">[</span><span class="identifier">out_it</span>
|
||||
<span class="special">-</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">),</span> <span class="identifier">out_it</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
The values are copied in reverse order. The return value is <code class="computeroutput"><span class="identifier">out_it</span> <span class="special">-</span>
|
||||
<span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
Note well that unlike all other standard algorithms <code class="computeroutput"><span class="identifier">out_it</span></code>
|
||||
denotes the <span class="bold"><strong>end</strong></span> of the output sequence.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.definition"></a><h6>
|
||||
<a name="id3200418"></a>
|
||||
<a class="link" href="copy_backward.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">copy_backward</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.requirements"></a><h6>
|
||||
<a name="id3200492"></a>
|
||||
<a class="link" href="copy_backward.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is a model of <a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">OutputIterator</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">OutputIteratorConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The <code class="computeroutput"><span class="identifier">value_type</span></code> of
|
||||
<a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional Range</a>
|
||||
Concept is convertible to a type in <code class="computeroutput"><span class="identifier">OutputIterator</span></code>'s
|
||||
set of value types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.precondition_"></a><h6>
|
||||
<a name="id3200603"></a>
|
||||
<a class="link" href="copy_backward.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">out_it</span></code> is not an iterator
|
||||
within the <code class="computeroutput"><span class="identifier">source_rng</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out_it</span><span class="special">,</span> <span class="identifier">out_it</span>
|
||||
<span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">))</span></code> is a valid range.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.complexity"></a><h6>
|
||||
<a name="id3200710"></a>
|
||||
<a class="link" href="copy_backward.html#range.reference.algorithms.range_algorithm_mutating_algorithms.copy_backward.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">source_rng</span><span class="special">)</span></code> assignments are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="copy.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="fill.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,105 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - fill</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="copy_backward.html" title="Range Algorithm - copy_backward">
|
||||
<link rel="next" href="generate.html" title="Range Algorithm - generate">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="copy_backward.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="generate.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - fill">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.fill"></a><a class="link" href="fill.html" title="Range Algorithm - fill">
|
||||
Range Algorithm - fill</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.fill.prototype"></a><h6>
|
||||
<a name="id3200782"></a>
|
||||
<a class="link" href="fill.html#range.reference.algorithms.range_algorithm_mutating_algorithms.fill.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">fill</span><span class="special">(</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">fill</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.fill.description"></a><h6>
|
||||
<a name="id3201031"></a>
|
||||
<a class="link" href="fill.html#range.reference.algorithms.range_algorithm_mutating_algorithms.fill.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">fill</span></code> assigns the value
|
||||
<code class="computeroutput"><span class="identifier">val</span></code> to every element
|
||||
in the range <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.fill.definition"></a><h6>
|
||||
<a name="id3201091"></a>
|
||||
<a class="link" href="fill.html#range.reference.algorithms.range_algorithm_mutating_algorithms.fill.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">fill</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.fill.requirements"></a><h6>
|
||||
<a name="id3201165"></a>
|
||||
<a class="link" href="fill.html#range.reference.algorithms.range_algorithm_mutating_algorithms.fill.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">AssignableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is convertible
|
||||
to <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.fill.complexity"></a><h6>
|
||||
<a name="id3201279"></a>
|
||||
<a class="link" href="fill.html#range.reference.algorithms.range_algorithm_mutating_algorithms.fill.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> assignments are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="copy_backward.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="generate.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+121
@@ -0,0 +1,121 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - generate</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="fill.html" title="Range Algorithm - fill">
|
||||
<link rel="next" href="inplace_merge.html" title="Range Algorithm - inplace_merge">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="fill.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="inplace_merge.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - generate">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.generate"></a><a class="link" href="generate.html" title="Range Algorithm - generate">
|
||||
Range Algorithm - generate</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.generate.prototype"></a><h6>
|
||||
<a name="id3201351"></a>
|
||||
<a class="link" href="generate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.generate.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Generator</span><span class="special">></span>
|
||||
<span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">generate</span><span class="special">(</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Generator</span> <span class="identifier">gen</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Generator</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">generate</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Generator</span> <span class="identifier">gen</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.generate.description"></a><h6>
|
||||
<a name="id3201594"></a>
|
||||
<a class="link" href="generate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.generate.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">generate</span></code> assigns the
|
||||
result of <code class="computeroutput"><span class="identifier">gen</span><span class="special">()</span></code>
|
||||
to each element in range <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
Returns the resultant range.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.generate.definition"></a><h6>
|
||||
<a name="id3201658"></a>
|
||||
<a class="link" href="generate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.generate.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">generate</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.generate.requirements"></a><h6>
|
||||
<a name="id3201733"></a>
|
||||
<a class="link" href="generate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.generate.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Generator</span></code> is a model
|
||||
of the <code class="computeroutput"><span class="identifier">GeneratorConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The <code class="computeroutput"><span class="identifier">value_type</span></code> of
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
convertible to a type in <code class="computeroutput"><span class="identifier">OutputIterator</span></code>'s
|
||||
set of value types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.generate.precondition_"></a><h6>
|
||||
<a name="id3201860"></a>
|
||||
<a class="link" href="generate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.generate.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">out_it</span></code> is not an iterator
|
||||
within <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out_it</span><span class="special">,</span> <span class="identifier">out_it</span>
|
||||
<span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is a valid range.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.generate.complexity"></a><h6>
|
||||
<a name="id3201966"></a>
|
||||
<a class="link" href="generate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.generate.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> assignments are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="fill.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="inplace_merge.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+187
@@ -0,0 +1,187 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - inplace_merge</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="generate.html" title="Range Algorithm - generate">
|
||||
<link rel="next" href="merge.html" title="Range Algorithm - merge">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="generate.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="merge.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - inplace_merge">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge"></a><a class="link" href="inplace_merge.html" title="Range Algorithm - inplace_merge">
|
||||
Range Algorithm - inplace_merge</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.prototype"></a><h6>
|
||||
<a name="id3202038"></a>
|
||||
<a class="link" href="inplace_merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">></span>
|
||||
<span class="identifier">BidirectionalRange</span><span class="special">&</span>
|
||||
<span class="identifier">inplace_merge</span><span class="special">(</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">BidirectionalRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span>
|
||||
<span class="identifier">inplace_merge</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="identifier">BidirectionalRange</span><span class="special">&</span>
|
||||
<span class="identifier">inplace_merge</span><span class="special">(</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">BidirectionalRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span> <span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span>
|
||||
<span class="identifier">inplace_merge</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span> <span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.description"></a><h6>
|
||||
<a name="id3202602"></a>
|
||||
<a class="link" href="inplace_merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">inplace_merge</span></code> combines
|
||||
two consecutive sorted ranges <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">middle</span><span class="special">)</span></code>
|
||||
and <code class="computeroutput"><span class="special">[</span><span class="identifier">middle</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> into a single sorted range <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>. That is, it starts with a range <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> that consists of two pieces each of
|
||||
which is in ascending order, and rearranges it so that the entire range
|
||||
is in ascending order. <code class="computeroutput"><span class="identifier">inplace_merge</span></code>
|
||||
is stable, meaning both that the relative order of elements within each
|
||||
input range is preserved.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.definition"></a><h6>
|
||||
<a name="id3202830"></a>
|
||||
<a class="link" href="inplace_merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">inplace_merge</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.requirements"></a><h6>
|
||||
<a name="id3202904"></a>
|
||||
<a class="link" href="inplace_merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate version:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is a model of the <a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
|
||||
Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">BidirectionalRange</span><span class="special">>::</span><span class="identifier">type</span></code> is a model of <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering on objects of <code class="computeroutput"><span class="identifier">range_type</span><span class="special"><</span><span class="identifier">BidirectionalRange</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate version:</strong></span> * <code class="computeroutput"><span class="identifier">BidirectionalRange</span></code> is a model of the
|
||||
<a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional Range</a>
|
||||
Concept. * <code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>
|
||||
is mutable. * <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>
|
||||
is a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
* <code class="computeroutput"><span class="identifier">BidirectionalRange</span></code>'s
|
||||
value type is convertible to both <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.precondition_"></a><h6>
|
||||
<a name="id3203160"></a>
|
||||
<a class="link" href="inplace_merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.for_the_non_predicate_version_"></a><h6>
|
||||
<a name="id3203184"></a>
|
||||
<a class="link" href="inplace_merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.for_the_non_predicate_version_">For
|
||||
the non-predicate version:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">middle</span></code> is in the range
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">middle</span><span class="special">)</span></code> is in ascending order. That is for
|
||||
each pair of adjacent elements <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
|
||||
<span class="identifier">x</span></code> is <code class="computeroutput"><span class="keyword">false</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">middle</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is in ascending order. That is for
|
||||
each pair of adjacent elements <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
|
||||
<span class="identifier">x</span></code> is <code class="computeroutput"><span class="keyword">false</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.for_the_predicate_version_"></a><h6>
|
||||
<a name="id3203446"></a>
|
||||
<a class="link" href="inplace_merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.for_the_predicate_version_">For
|
||||
the predicate version:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">middle</span></code> is in the range
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">middle</span><span class="special">)</span></code> is in ascending order. That is for
|
||||
each pair of adjacent elements <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span><span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">middle</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is in ascending order. That is for
|
||||
each pair of adjacent elements <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span><span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.complexity"></a><h6>
|
||||
<a name="id3203729"></a>
|
||||
<a class="link" href="inplace_merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.inplace_merge.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Worst case: <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">N</span><span class="special">))</span></code>
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="generate.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="merge.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,247 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - merge</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="inplace_merge.html" title="Range Algorithm - inplace_merge">
|
||||
<link rel="next" href="nth_element.html" title="Range Algorithm - nth_element">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="inplace_merge.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="nth_element.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - merge">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge"></a><a class="link" href="merge.html" title="Range Algorithm - merge">
|
||||
Range Algorithm - merge</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge.prototype"></a><h6>
|
||||
<a name="id3203814"></a>
|
||||
<a class="link" href="merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.merge.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">OutputIterator</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">merge</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">merge</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge.description"></a><h6>
|
||||
<a name="id3204165"></a>
|
||||
<a class="link" href="merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.merge.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">merge</span></code> combines two sorted
|
||||
ranges <code class="computeroutput"><span class="identifier">rng1</span></code> and <code class="computeroutput"><span class="identifier">rng2</span></code> into a single sorted range by
|
||||
copying elements. <code class="computeroutput"><span class="identifier">merge</span></code>
|
||||
is stable. The return value is <code class="computeroutput"><span class="identifier">out</span>
|
||||
<span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
The two versions of <code class="computeroutput"><span class="identifier">merge</span></code>
|
||||
differ by how they compare the elements.
|
||||
</p>
|
||||
<p>
|
||||
The non-predicate version uses the <code class="computeroutput"><span class="keyword">operator</span><span class="special"><()</span></code> for the range value type. The predicate
|
||||
version uses the predicate instead of <code class="computeroutput"><span class="keyword">operator</span><span class="special"><()</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge.definition"></a><h6>
|
||||
<a name="id3204349"></a>
|
||||
<a class="link" href="merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.merge.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">merge</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge.requirements"></a><h6>
|
||||
<a name="id3204423"></a>
|
||||
<a class="link" href="merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.merge.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate version:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span></code> is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering on objects of <code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span></code>
|
||||
is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span></code> is convertible to a type in
|
||||
<code class="computeroutput"><span class="identifier">OutputIterator</span></code>'s set
|
||||
of value types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate version:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is convertible to both <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">range_value</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span></code> is convertible to a type in
|
||||
<code class="computeroutput"><span class="identifier">OutputIterator</span></code>'s set
|
||||
of value types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge.precondition_"></a><h6>
|
||||
<a name="id3204928"></a>
|
||||
<a class="link" href="merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.merge.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge.for_the_non_predicate_version_"></a><h6>
|
||||
<a name="id3204952"></a>
|
||||
<a class="link" href="merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.merge.for_the_non_predicate_version_">For
|
||||
the non-predicate version:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
The elements of <code class="computeroutput"><span class="identifier">rng1</span></code>
|
||||
are in ascending order. That is, for each adjacent element pair <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code> of <code class="computeroutput"><span class="identifier">rng1</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
|
||||
<span class="identifier">x</span> <span class="special">==</span>
|
||||
<span class="keyword">false</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The elements of <code class="computeroutput"><span class="identifier">rng2</span></code>
|
||||
are in ascending order. That is, for each adjacent element pair <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code> of <code class="computeroutput"><span class="identifier">rng2</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
|
||||
<span class="identifier">x</span> <span class="special">==</span>
|
||||
<span class="keyword">false</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ranges <code class="computeroutput"><span class="identifier">rng1</span></code> and
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
do not overlap.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ranges <code class="computeroutput"><span class="identifier">rng2</span></code> and
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
do not overlap.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
is a valid range.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge.for_the_predicate_version_"></a><h6>
|
||||
<a name="id3205413"></a>
|
||||
<a class="link" href="merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.merge.for_the_predicate_version_">For
|
||||
the predicate version:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
The elements of <code class="computeroutput"><span class="identifier">rng1</span></code>
|
||||
is in ascending order. That is, for each adjacent element pair <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>, of <code class="computeroutput"><span class="identifier">rng1</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The elements of <code class="computeroutput"><span class="identifier">rng2</span></code>
|
||||
is in ascending order. That is, for each adjacent element pair <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>, of <code class="computeroutput"><span class="identifier">rng2</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ranges <code class="computeroutput"><span class="identifier">rng1</span></code> and
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
do not overlap.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ranges <code class="computeroutput"><span class="identifier">rng2</span></code> and
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
do not overlap.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
is a valid range.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.merge.complexity"></a><h6>
|
||||
<a name="id3205897"></a>
|
||||
<a class="link" href="merge.html#range.reference.algorithms.range_algorithm_mutating_algorithms.merge.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. There are no comparisons if both <code class="computeroutput"><span class="identifier">rng1</span></code>
|
||||
and <code class="computeroutput"><span class="identifier">rng2</span></code> are empty, otherwise
|
||||
at most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span></code>
|
||||
comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="inplace_merge.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="nth_element.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+147
@@ -0,0 +1,147 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - nth_element</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="merge.html" title="Range Algorithm - merge">
|
||||
<link rel="next" href="partial_sort.html" title="Range Algorithm - partial_sort">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="merge.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="partial_sort.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - nth_element">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element"></a><a class="link" href="nth_element.html" title="Range Algorithm - nth_element">
|
||||
Range Algorithm - nth_element</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.prototype"></a><h6>
|
||||
<a name="id3206028"></a>
|
||||
<a class="link" href="nth_element.html#range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">nth_element</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">RandomAccessRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">nth</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">nth_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">nth</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">nth_element</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">RandomAccessRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">nth</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">sort_pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">nth_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">nth</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">sort_pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.description"></a><h6>
|
||||
<a name="id3206521"></a>
|
||||
<a class="link" href="nth_element.html#range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">nth_element</span></code> partially
|
||||
orders a range of elements. <code class="computeroutput"><span class="identifier">nth_element</span></code>
|
||||
arranges the range <code class="computeroutput"><span class="identifier">rng</span></code>
|
||||
such that the element corresponding with the iterator <code class="computeroutput"><span class="identifier">nth</span></code>
|
||||
is the same as the element that would be in that position if <code class="computeroutput"><span class="identifier">rng</span></code> has been sorted.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.definition"></a><h6>
|
||||
<a name="id3206605"></a>
|
||||
<a class="link" href="nth_element.html#range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">nth_element</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.requirements"></a><h6>
|
||||
<a name="id3206679"></a>
|
||||
<a class="link" href="nth_element.html#range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate version:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering relation on <code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate version:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.complexity"></a><h6>
|
||||
<a name="id3206915"></a>
|
||||
<a class="link" href="nth_element.html#range.reference.algorithms.range_algorithm_mutating_algorithms.nth_element.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
On average, linear in <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="merge.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="partial_sort.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+152
@@ -0,0 +1,152 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - partial_sort</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="nth_element.html" title="Range Algorithm - nth_element">
|
||||
<link rel="next" href="partition.html" title="Range Algorithm - partition">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="nth_element.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="partition.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - partial_sort">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort"></a><a class="link" href="partial_sort.html" title="Range Algorithm - partial_sort">
|
||||
Range Algorithm - partial_sort</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.prototype"></a><h6>
|
||||
<a name="id3206986"></a>
|
||||
<a class="link" href="partial_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">partial_sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">RandomAccessRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">partial_sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">partial_sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">RandomAccessRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">sort_pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">partial_sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">sort_pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.description"></a><h6>
|
||||
<a name="id3207480"></a>
|
||||
<a class="link" href="partial_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">partial_sort</span></code> rearranges
|
||||
the elements in <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
It places the smallest <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">middle</span><span class="special">)</span></code> elements, sorted in ascending order,
|
||||
into the range <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">middle</span><span class="special">)</span></code>. The remaining elements are placed in
|
||||
an unspecified order into <code class="computeroutput"><span class="special">[</span><span class="identifier">middle</span><span class="special">,</span> <span class="identifier">last</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
The non-predicative versions of this function specify that one element
|
||||
is less than another by using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><()</span></code>. The predicate versions use the
|
||||
predicate instead.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.definition"></a><h6>
|
||||
<a name="id3207667"></a>
|
||||
<a class="link" href="partial_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">partial_sort</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.requirements"></a><h6>
|
||||
<a name="id3207741"></a>
|
||||
<a class="link" href="partial_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate version:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering relation on <code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate version:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.complexity"></a><h6>
|
||||
<a name="id3207979"></a>
|
||||
<a class="link" href="partial_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partial_sort.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Approximately <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">middle</span><span class="special">))</span></code> comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="nth_element.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="partition.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+133
@@ -0,0 +1,133 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - partition</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="partial_sort.html" title="Range Algorithm - partial_sort">
|
||||
<link rel="next" href="random_shuffle.html" title="Range Algorithm - random_shuffle">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="partial_sort.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="random_shuffle.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - partition">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partition"></a><a class="link" href="partition.html" title="Range Algorithm - partition">
|
||||
Range Algorithm - partition</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partition.prototype"></a><h6>
|
||||
<a name="id3208103"></a>
|
||||
<a class="link" href="partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partition.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">partition</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">partition</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">partition</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">partition</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partition.description"></a><h6>
|
||||
<a name="id3208689"></a>
|
||||
<a class="link" href="partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partition.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">partition</span></code> orders the
|
||||
elements in <code class="computeroutput"><span class="identifier">rng</span></code> based
|
||||
on <code class="computeroutput"><span class="identifier">pred</span></code>, such that the
|
||||
elements that satisfy <code class="computeroutput"><span class="identifier">pred</span></code>
|
||||
precede the elements that do not. In the versions that return a single
|
||||
iterator, the return value is the middle iterator. In the versions that
|
||||
have a configurable range_return, <code class="computeroutput"><span class="identifier">found</span></code>
|
||||
corresponds to the middle iterator.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partition.definition"></a><h6>
|
||||
<a name="id3208776"></a>
|
||||
<a class="link" href="partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partition.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">partition</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partition.requirements"></a><h6>
|
||||
<a name="id3208849"></a>
|
||||
<a class="link" href="partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partition.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryPredicate</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">PredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">UnaryPredicate</span></code>'s
|
||||
argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.partition.complexity"></a><h6>
|
||||
<a name="id3208951"></a>
|
||||
<a class="link" href="partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.partition.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> applications of <code class="computeroutput"><span class="identifier">pred</span></code>,
|
||||
and at most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">/</span> <span class="number">2</span></code>
|
||||
swaps.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="partial_sort.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="random_shuffle.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+132
@@ -0,0 +1,132 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - random_shuffle</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="partition.html" title="Range Algorithm - partition">
|
||||
<link rel="next" href="remove.html" title="Range Algorithm - remove">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="partition.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remove.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - random_shuffle">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle"></a><a class="link" href="random_shuffle.html" title="Range Algorithm - random_shuffle">
|
||||
Range Algorithm - random_shuffle</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.prototype"></a><h6>
|
||||
<a name="id3209069"></a>
|
||||
<a class="link" href="random_shuffle.html#range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">random_shuffle</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">random_shuffle</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Generator</span><span class="special">></span>
|
||||
<span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">random_shuffle</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Generator</span><span class="special">&</span> <span class="identifier">gen</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Generator</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">random_shuffle</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Generator</span><span class="special">&</span> <span class="identifier">gen</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.description"></a><h6>
|
||||
<a name="id3209460"></a>
|
||||
<a class="link" href="random_shuffle.html#range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">random_shuffle</span></code> randomly
|
||||
rearranges the elements in <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
The versions of <code class="computeroutput"><span class="identifier">random_shuffle</span></code>
|
||||
that do not specify a <code class="computeroutput"><span class="identifier">Generator</span></code>
|
||||
use an internal random number generator. The versions of <code class="computeroutput"><span class="identifier">random_shuffle</span></code> that do specify a <code class="computeroutput"><span class="identifier">Generator</span></code> use this instead. Returns
|
||||
the shuffles range.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.definition"></a><h6>
|
||||
<a name="id3209556"></a>
|
||||
<a class="link" href="random_shuffle.html#range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">random_shuffle</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.requirements"></a><h6>
|
||||
<a name="id3209631"></a>
|
||||
<a class="link" href="random_shuffle.html#range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the version without a Generator:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li></ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the version with a Generator:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Generator</span></code> is a model
|
||||
of the <code class="computeroutput"><span class="identifier">RandomNumberGeneratorConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
distance type is convertible to <code class="computeroutput"><span class="identifier">Generator</span></code>'s
|
||||
argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.precondition_"></a><h6>
|
||||
<a name="id3209778"></a>
|
||||
<a class="link" href="random_shuffle.html#range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
is less than <code class="computeroutput"><span class="identifier">gen</span></code>'s
|
||||
maximum value.
|
||||
</li></ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.complexity"></a><h6>
|
||||
<a name="id3209844"></a>
|
||||
<a class="link" href="random_shuffle.html#range.reference.algorithms.range_algorithm_mutating_algorithms.random_shuffle.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. If <code class="computeroutput"><span class="special">!</span><span class="identifier">empty</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>, exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span></code>
|
||||
swaps are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="partition.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remove.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,139 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - remove</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="random_shuffle.html" title="Range Algorithm - random_shuffle">
|
||||
<link rel="next" href="remove_if.html" title="Range Algorithm - remove_if">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="random_shuffle.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remove_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - remove">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove"></a><a class="link" href="remove.html" title="Range Algorithm - remove">
|
||||
Range Algorithm - remove</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove.prototype"></a><h6>
|
||||
<a name="id3209956"></a>
|
||||
<a class="link" href="remove.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">remove</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">remove</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span><span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">remove</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span><span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">remove</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove.description"></a><h6>
|
||||
<a name="id3210578"></a>
|
||||
<a class="link" href="remove.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">remove</span></code> removes from
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> all of the elements
|
||||
<code class="computeroutput"><span class="identifier">x</span></code> for which <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span> <span class="identifier">val</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
The versions of <code class="computeroutput"><span class="identifier">remove</span></code>
|
||||
that return an iterator, return an iterator <code class="computeroutput"><span class="identifier">new_last</span></code>
|
||||
such that the range <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">new_last</span><span class="special">)</span></code> contains no elements equal to <code class="computeroutput"><span class="identifier">val</span></code>. The <code class="computeroutput"><span class="identifier">range_return</span></code>
|
||||
versions of <code class="computeroutput"><span class="identifier">remove</span></code> defines
|
||||
<code class="computeroutput"><span class="identifier">found</span></code> as the new last
|
||||
element. The iterators in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">new_last</span><span class="special">,</span>
|
||||
<span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>
|
||||
are dereferenceable, but the elements are unspecified.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove.definition"></a><h6>
|
||||
<a name="id3210816"></a>
|
||||
<a class="link" href="remove.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">remove</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove.requirements"></a><h6>
|
||||
<a name="id3210890"></a>
|
||||
<a class="link" href="remove.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Objects of type <code class="computeroutput"><span class="identifier">Value</span></code>
|
||||
can be compared for equality with objects of <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove.complexity"></a><h6>
|
||||
<a name="id3211006"></a>
|
||||
<a class="link" href="remove.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">remove</span></code> performs
|
||||
exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
comparisons for equality.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="random_shuffle.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remove_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+138
@@ -0,0 +1,138 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - remove_if</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="remove.html" title="Range Algorithm - remove">
|
||||
<link rel="next" href="replace.html" title="Range Algorithm - replace">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="remove.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="replace.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - remove_if">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if"></a><a class="link" href="remove_if.html" title="Range Algorithm - remove_if">
|
||||
Range Algorithm - remove_if</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.prototype"></a><h6>
|
||||
<a name="id3211090"></a>
|
||||
<a class="link" href="remove_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">remove</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">remove</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span><span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">remove</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span><span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">remove</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.description"></a><h6>
|
||||
<a name="id3211674"></a>
|
||||
<a class="link" href="remove_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">remove_if</span></code> removes from
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> all of the elements
|
||||
<code class="computeroutput"><span class="identifier">x</span></code> for which <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">true</span></code>. The versions of
|
||||
<code class="computeroutput"><span class="identifier">remove_if</span></code> that return
|
||||
an iterator, return an iterator <code class="computeroutput"><span class="identifier">new_last</span></code>
|
||||
such that the range <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">new_last</span><span class="special">)</span></code> contains no elements where <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">true</span></code>. The iterators in
|
||||
the range <code class="computeroutput"><span class="special">[</span><span class="identifier">new_last</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> are dereferenceable, but the elements
|
||||
are unspecified.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.definition"></a><h6>
|
||||
<a name="id3211906"></a>
|
||||
<a class="link" href="remove_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">remove_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.requirements"></a><h6>
|
||||
<a name="id3211980"></a>
|
||||
<a class="link" href="remove_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryPredicate</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">PredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">UnaryPredicate</span></code>'s
|
||||
argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.complexity"></a><h6>
|
||||
<a name="id3212097"></a>
|
||||
<a class="link" href="remove_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.remove_if.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">remove_if</span></code> performs
|
||||
exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
applications of <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="remove.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="replace.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,119 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - replace</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="remove_if.html" title="Range Algorithm - remove_if">
|
||||
<link rel="next" href="replace_if.html" title="Range Algorithm - replace_if">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="remove_if.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="replace_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - replace">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace"></a><a class="link" href="replace.html" title="Range Algorithm - replace">
|
||||
Range Algorithm - replace</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace.prototype"></a><h6>
|
||||
<a name="id3212190"></a>
|
||||
<a class="link" href="replace.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">replace</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">what</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">with_what</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">replace</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">what</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">with_what</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace.description"></a><h6>
|
||||
<a name="id3212507"></a>
|
||||
<a class="link" href="replace.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">replace</span></code> every element
|
||||
in <code class="computeroutput"><span class="identifier">rng</span></code> equal to <code class="computeroutput"><span class="identifier">what</span></code> with <code class="computeroutput"><span class="identifier">with_what</span></code>.
|
||||
Return a reference to <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace.definition"></a><h6>
|
||||
<a name="id3212588"></a>
|
||||
<a class="link" href="replace.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">replace</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace.requirements"></a><h6>
|
||||
<a name="id3212662"></a>
|
||||
<a class="link" href="replace.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is convertible
|
||||
to <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">AssignableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>,
|
||||
and may be compared for equality with objects of <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace.complexity"></a><h6>
|
||||
<a name="id3212814"></a>
|
||||
<a class="link" href="replace.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">replace</span></code> performs
|
||||
exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
comparisons for equality and at most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> assignments.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="remove_if.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="replace_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+117
@@ -0,0 +1,117 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - replace_if</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="replace.html" title="Range Algorithm - replace">
|
||||
<link rel="next" href="rotate.html" title="Range Algorithm - rotate">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="replace.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rotate.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - replace_if">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if"></a><a class="link" href="replace_if.html" title="Range Algorithm - replace_if">
|
||||
Range Algorithm - replace_if</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.prototype"></a><h6>
|
||||
<a name="id3212924"></a>
|
||||
<a class="link" href="replace_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">UnaryPredicate</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">replace_if</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">with_what</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">UnaryPredicate</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">replace_if</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">with_what</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.description"></a><h6>
|
||||
<a name="id3213249"></a>
|
||||
<a class="link" href="replace_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">replace_if</span></code> replaces every
|
||||
element <code class="computeroutput"><span class="identifier">x</span></code> in <code class="computeroutput"><span class="identifier">rng</span></code> for which <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">true</span></code> with <code class="computeroutput"><span class="identifier">with_what</span></code>.
|
||||
Returns a reference to <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.definition"></a><h6>
|
||||
<a name="id3213366"></a>
|
||||
<a class="link" href="replace_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">replace_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.requirements"></a><h6>
|
||||
<a name="id3213441"></a>
|
||||
<a class="link" href="replace_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryPredicate</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">PredicateConcept</span></code>
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">UnaryPredicate</span></code>'s
|
||||
argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is convertible
|
||||
to <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">AssignableConcept</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.complexity"></a><h6>
|
||||
<a name="id3213609"></a>
|
||||
<a class="link" href="replace_if.html#range.reference.algorithms.range_algorithm_mutating_algorithms.replace_if.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">replace_if</span></code> performs
|
||||
exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
applications of <code class="computeroutput"><span class="identifier">pred</span></code>,
|
||||
and at most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> assignments.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="replace.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="rotate.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,110 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - rotate</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="replace_if.html" title="Range Algorithm - replace_if">
|
||||
<link rel="next" href="sort.html" title="Range Algorithm - sort">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="replace_if.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sort.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - rotate">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.rotate"></a><a class="link" href="rotate.html" title="Range Algorithm - rotate">
|
||||
Range Algorithm - rotate</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.prototype"></a><h6>
|
||||
<a name="id3213728"></a>
|
||||
<a class="link" href="rotate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rotate</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rotate</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.description"></a><h6>
|
||||
<a name="id3213989"></a>
|
||||
<a class="link" href="rotate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rotate</span></code> rotates the elements
|
||||
in a range. It exchanges the two ranges <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">middle</span><span class="special">)</span></code>
|
||||
and <code class="computeroutput"><span class="special">[</span><span class="identifier">middle</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>. Returns a reference to <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.definition"></a><h6>
|
||||
<a name="id3214117"></a>
|
||||
<a class="link" href="rotate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">rotate</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.requirements"></a><h6>
|
||||
<a name="id3214192"></a>
|
||||
<a class="link" href="rotate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.precondition_"></a><h6>
|
||||
<a name="id3214256"></a>
|
||||
<a class="link" href="rotate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">),</span> <span class="identifier">middle</span><span class="special">)</span></code> is a valid range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">middle</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code> is a valid range.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.complexity"></a><h6>
|
||||
<a name="id3214366"></a>
|
||||
<a class="link" href="rotate.html#range.reference.algorithms.range_algorithm_mutating_algorithms.rotate.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> swaps are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="replace_if.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="sort.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,154 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - sort</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="rotate.html" title="Range Algorithm - rotate">
|
||||
<link rel="next" href="stable_partition.html" title="Range Algorithm - stable_partition">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="rotate.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="stable_partition.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - sort">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.sort"></a><a class="link" href="sort.html" title="Range Algorithm - sort">
|
||||
Range Algorithm - sort</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.sort.prototype"></a><h6>
|
||||
<a name="id3214439"></a>
|
||||
<a class="link" href="sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.sort.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.sort.description"></a><h6>
|
||||
<a name="id3214822"></a>
|
||||
<a class="link" href="sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.sort.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">sort</span></code> sorts the elements
|
||||
in <code class="computeroutput"><span class="identifier">rng</span></code> into ascending
|
||||
order. <code class="computeroutput"><span class="identifier">sort</span></code> is not guaranteed
|
||||
to be stable. Returns the sorted range.
|
||||
</p>
|
||||
<p>
|
||||
For versions of the <code class="computeroutput"><span class="identifier">sort</span></code>
|
||||
function without a predicate, ascending order is defined by <code class="computeroutput"><span class="keyword">operator</span><span class="special"><()</span></code>
|
||||
such that for all adjacent elements <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
|
||||
<span class="identifier">x</span> <span class="special">==</span>
|
||||
<span class="keyword">false</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
For versions of the <code class="computeroutput"><span class="identifier">sort</span></code>
|
||||
function with a predicate, ascending order is defined by <code class="computeroutput"><span class="identifier">pred</span></code> such that for all adjacent elements
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>, <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.sort.definition"></a><h6>
|
||||
<a name="id3215077"></a>
|
||||
<a class="link" href="sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.sort.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">sort</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.sort.requirements"></a><h6>
|
||||
<a name="id3215150"></a>
|
||||
<a class="link" href="sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.sort.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For versions of sort without a predicate:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering relation on <code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a <span class="bold"><strong>strict weak ordering</strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For versions of sort with a predicate</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.sort.complexity"></a><h6>
|
||||
<a name="id3215387"></a>
|
||||
<a class="link" href="sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.sort.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">N</span><span class="special">))</span></code> comparisons (both average and worst-case),
|
||||
where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="rotate.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="stable_partition.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - stable_partition</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="sort.html" title="Range Algorithm - sort">
|
||||
<link rel="next" href="stable_sort.html" title="Range Algorithm - stable_sort">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="sort.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="stable_sort.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - stable_partition">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition"></a><a class="link" href="stable_partition.html" title="Range Algorithm - stable_partition">
|
||||
Range Algorithm - stable_partition</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.prototype"></a><h6>
|
||||
<a name="id3215508"></a>
|
||||
<a class="link" href="stable_partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">UnaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">UnaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">stable_partition</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">stable_partition</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.description"></a><h6>
|
||||
<a name="id3216089"></a>
|
||||
<a class="link" href="stable_partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">stable_partition</span></code> reorders
|
||||
the elements in the range <code class="computeroutput"><span class="identifier">rng</span></code>
|
||||
base on the function object <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
Once this function has completed all of the elements that satisfy <code class="computeroutput"><span class="identifier">pred</span></code> appear before all of the elements
|
||||
that fail to satisfy it. <code class="computeroutput"><span class="identifier">stable_partition</span></code>
|
||||
differs from <code class="computeroutput"><span class="identifier">partition</span></code>
|
||||
because it preserves relative order. It is table.
|
||||
</p>
|
||||
<p>
|
||||
For the versions that return an iterator, the return value is the iterator
|
||||
to the first element that fails to satisfy <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
For versions that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
the <code class="computeroutput"><span class="identifier">found</span></code> iterator is
|
||||
the iterator to the first element that fails to satisfy <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.definition"></a><h6>
|
||||
<a name="id3216242"></a>
|
||||
<a class="link" href="stable_partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">stable_partition</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.requirements"></a><h6>
|
||||
<a name="id3216318"></a>
|
||||
<a class="link" href="stable_partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryPredicate</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">PredicateConcept</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.complexity"></a><h6>
|
||||
<a name="id3216409"></a>
|
||||
<a class="link" href="stable_partition.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_partition.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Best case: <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code>
|
||||
where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
Worst case: <code class="computeroutput"><span class="identifier">N</span> <span class="special">*</span>
|
||||
<span class="identifier">log</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code>
|
||||
swaps, where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="sort.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="stable_sort.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - stable_sort</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="stable_partition.html" title="Range Algorithm - stable_partition">
|
||||
<link rel="next" href="transform.html" title="Range Algorithm - transform">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="stable_partition.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - stable_sort">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort"></a><a class="link" href="stable_sort.html" title="Range Algorithm - stable_sort">
|
||||
Range Algorithm - stable_sort</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.prototype"></a><h6>
|
||||
<a name="id3216584"></a>
|
||||
<a class="link" href="stable_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">stable_sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">stable_sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">stable_sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">stable_sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.description"></a><h6>
|
||||
<a name="id3216967"></a>
|
||||
<a class="link" href="stable_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">stable_sort</span></code> sorts the
|
||||
elements in <code class="computeroutput"><span class="identifier">rng</span></code> into
|
||||
ascending order. <code class="computeroutput"><span class="identifier">stable_sort</span></code>
|
||||
is guaranteed to be stable. The order is preserved for equivalent elements.
|
||||
</p>
|
||||
<p>
|
||||
For versions of the <code class="computeroutput"><span class="identifier">stable_sort</span></code>
|
||||
function without a predicate ascending order is defined by <code class="computeroutput"><span class="keyword">operator</span><span class="special"><()</span></code>
|
||||
such that for all adjacent elements <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>,
|
||||
<code class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
|
||||
<span class="identifier">x</span> <span class="special">==</span>
|
||||
<span class="keyword">false</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
For versions of the <code class="computeroutput"><span class="identifier">stable_sort</span></code>
|
||||
function with a predicate, ascending order is designed by <code class="computeroutput"><span class="identifier">pred</span></code> such that for all adjacent elements
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>, <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span><span class="identifier">x</span><span class="special">)</span> <span class="special">==</span> <span class="keyword">false</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.definition"></a><h6>
|
||||
<a name="id3217221"></a>
|
||||
<a class="link" href="stable_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">stable_sort</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.requirements"></a><h6>
|
||||
<a name="id3217296"></a>
|
||||
<a class="link" href="stable_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For versions of stable_sort without a predicate</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering relation on <code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is a <span class="bold"><strong>strict weak ordering</strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For versions of stable_sort with a predicate:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">RandomAccessRange</span></code>'s
|
||||
value type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.complexity"></a><h6>
|
||||
<a name="id3217533"></a>
|
||||
<a class="link" href="stable_sort.html#range.reference.algorithms.range_algorithm_mutating_algorithms.stable_sort.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Best case: <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code>
|
||||
where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
Worst case: <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span> <span class="identifier">log</span><span class="special">(</span><span class="identifier">N</span><span class="special">)^</span><span class="number">2</span><span class="special">)</span></code>
|
||||
comparisons, where <code class="computeroutput"><span class="identifier">N</span></code>
|
||||
is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="stable_partition.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+226
@@ -0,0 +1,226 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - transform</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="stable_sort.html" title="Range Algorithm - stable_sort">
|
||||
<link rel="next" href="unique.html" title="Range Algorithm - unique">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="stable_sort.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unique.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - transform">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.transform"></a><a class="link" href="transform.html" title="Range Algorithm - transform">
|
||||
Range Algorithm - transform</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.transform.prototype"></a><h6>
|
||||
<a name="id3217722"></a>
|
||||
<a class="link" href="transform.html#range.reference.algorithms.range_algorithm_mutating_algorithms.transform.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryOperation</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">transform</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
|
||||
<span class="identifier">UnaryOperation</span> <span class="identifier">fun</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryOperation</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">transform</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryOperation</span> <span class="identifier">fun</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.transform.description"></a><h6>
|
||||
<a name="id3218064"></a>
|
||||
<a class="link" href="transform.html#range.reference.algorithms.range_algorithm_mutating_algorithms.transform.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>UnaryOperation version:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">transform</span></code> assigns the
|
||||
value <code class="computeroutput"><span class="identifier">y</span></code> to each element
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)),</span> <span class="identifier">y</span> <span class="special">=</span> <span class="identifier">fun</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code> where <code class="computeroutput"><span class="identifier">x</span></code>
|
||||
is the corresponding value to <code class="computeroutput"><span class="identifier">y</span></code>
|
||||
in <code class="computeroutput"><span class="identifier">rng1</span></code>. The return value
|
||||
is <code class="computeroutput"><span class="identifier">out</span> <span class="special">+</span>
|
||||
<span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>BinaryOperation version:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">transform</span></code> assigns the
|
||||
value <code class="computeroutput"><span class="identifier">z</span></code> to each element
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">min</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">),</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))),</span> <span class="identifier">z</span> <span class="special">=</span> <span class="identifier">fun</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span></code> where <code class="computeroutput"><span class="identifier">x</span></code>
|
||||
is the corresponding value in <code class="computeroutput"><span class="identifier">rng1</span></code>
|
||||
and <code class="computeroutput"><span class="identifier">y</span></code> is the corresponding
|
||||
value in <code class="computeroutput"><span class="identifier">rng2</span></code>. This version
|
||||
of <code class="computeroutput"><span class="identifier">transform</span></code> stops upon
|
||||
reaching either the end of <code class="computeroutput"><span class="identifier">rng1</span></code>,
|
||||
or the end of <code class="computeroutput"><span class="identifier">rng2</span></code>. Hence
|
||||
there isn't a requirement for <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span></code>
|
||||
since there is a safe guaranteed behaviour, unlike with the iterator
|
||||
counterpart in the standard library.
|
||||
</p>
|
||||
<p>
|
||||
The return value is <code class="computeroutput"><span class="identifier">out</span> <span class="special">+</span> <span class="identifier">min</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">),</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.transform.definition"></a><h6>
|
||||
<a name="id3218616"></a>
|
||||
<a class="link" href="transform.html#range.reference.algorithms.range_algorithm_mutating_algorithms.transform.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">transform</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.transform.requirements"></a><h6>
|
||||
<a name="id3218691"></a>
|
||||
<a class="link" href="transform.html#range.reference.algorithms.range_algorithm_mutating_algorithms.transform.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the unary versions of transform:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">OutputIterator</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">OutputIteratorConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryOperation</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">UnaryFunctionConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type must be convertible to <code class="computeroutput"><span class="identifier">UnaryFunction</span></code>'s
|
||||
argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryFunction</span></code>'s result
|
||||
type must be convertible to a type in <code class="computeroutput"><span class="identifier">OutputIterator</span></code>'s
|
||||
set of value types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the binary versions of transform:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">OutputIterator</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">OutputIteratorConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryOperation</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryFunctionConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type must be convertible to <code class="computeroutput"><span class="identifier">BinaryFunction</span></code>'s
|
||||
first argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type must be convertible to <code class="computeroutput"><span class="identifier">BinaryFunction</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryOperation</span></code>'s result
|
||||
type must be convertible to a type in <code class="computeroutput"><span class="identifier">OutputIterator</span></code>'s
|
||||
set of value types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.transform.precondition_"></a><h6>
|
||||
<a name="id3219045"></a>
|
||||
<a class="link" href="transform.html#range.reference.algorithms.range_algorithm_mutating_algorithms.transform.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the unary version of transform:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">out</span></code> is not an iterator
|
||||
within the range <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">))</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">))</span></code> is a valid range.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the binary version of transform:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">out</span></code> is not an iterator
|
||||
within the range <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">))</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">out</span></code> is not an iterator
|
||||
within the range <code class="computeroutput"><span class="special">[</span><span class="identifier">begin</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span> <span class="special">+</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">end</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="special">[</span><span class="identifier">out</span><span class="special">,</span> <span class="identifier">out</span> <span class="special">+</span> <span class="identifier">min</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">),</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)))</span></code> is a valid range.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.transform.complexity"></a><h6>
|
||||
<a name="id3219462"></a>
|
||||
<a class="link" href="transform.html#range.reference.algorithms.range_algorithm_mutating_algorithms.transform.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. The operation is applied exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code> for the unary version and <code class="computeroutput"><span class="identifier">min</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">),</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
for the binary version.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="stable_sort.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="unique.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,164 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - unique</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_mutating_algorithms.html" title="Mutating algorithms">
|
||||
<link rel="prev" href="transform.html" title="Range Algorithm - transform">
|
||||
<link rel="next" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="transform.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - unique">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.unique"></a><a class="link" href="unique.html" title="Range Algorithm - unique">
|
||||
Range Algorithm - unique</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.unique.prototype"></a><h6>
|
||||
<a name="id3219589"></a>
|
||||
<a class="link" href="unique.html#range.reference.algorithms.range_algorithm_mutating_algorithms.unique.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">return_begin_found</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">unique</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">return_begin_found</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">unique</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">return_begin_found</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">unique</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">return_begin_found</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">unique</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">unique</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">unique</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">unique</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">unique</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.unique.description"></a><h6>
|
||||
<a name="id3220621"></a>
|
||||
<a class="link" href="unique.html#range.reference.algorithms.range_algorithm_mutating_algorithms.unique.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">unique</span></code> removes all but
|
||||
the first element of each sequence of duplicate encountered in <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
Elements in the range <code class="computeroutput"><span class="special">[</span><span class="identifier">new_last</span><span class="special">,</span>
|
||||
<span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">))</span></code>
|
||||
are dereferenceable but undefined.
|
||||
</p>
|
||||
<p>
|
||||
Equality is determined by the predicate if one is supplied, or by <code class="computeroutput"><span class="keyword">operator</span><span class="special">==()</span></code>
|
||||
for <code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.unique.definition"></a><h6>
|
||||
<a name="id3220745"></a>
|
||||
<a class="link" href="unique.html#range.reference.algorithms.range_algorithm_mutating_algorithms.unique.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">unique</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.unique.requirements"></a><h6>
|
||||
<a name="id3220821"></a>
|
||||
<a class="link" href="unique.html#range.reference.algorithms.range_algorithm_mutating_algorithms.unique.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions of unique:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions of unique:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is mutable.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
first argument type and to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_mutating_algorithms.unique.complexity"></a><h6>
|
||||
<a name="id3221034"></a>
|
||||
<a class="link" href="unique.html#range.reference.algorithms.range_algorithm_mutating_algorithms.unique.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code>
|
||||
where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
comparisons are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="transform.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,62 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>New algorithms</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../algorithms.html" title="Range Algorithm">
|
||||
<link rel="prev" href="permutation_algorithms/prev_permutation.html" title="prev_permutation">
|
||||
<link rel="next" href="range_algorithm_new_algorithms/erase.html" title="erase">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="permutation_algorithms/prev_permutation.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_algorithm_new_algorithms/erase.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="New algorithms">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms"></a><a class="link" href="range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
New algorithms</a>
|
||||
</h4></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="range_algorithm_new_algorithms/erase.html">
|
||||
erase</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_new_algorithms/for_each.html">
|
||||
for_each</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_new_algorithms/insert.html">
|
||||
insert</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_new_algorithms/overwrite.html">
|
||||
overwrite</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_new_algorithms/push_back.html">
|
||||
push_back</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_new_algorithms/push_front.html">
|
||||
push_front</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_new_algorithms/remove_erase.html">
|
||||
remove_erase</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_new_algorithms/remove_erase_if.html">
|
||||
remove_erase_if</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="permutation_algorithms/prev_permutation.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_algorithm_new_algorithms/erase.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,91 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>erase</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="prev" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="next" href="for_each.html" title="for_each">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="erase">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.erase"></a><a class="link" href="erase.html" title="erase">
|
||||
erase</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.erase.prototype"></a><h6>
|
||||
<a name="id3255065"></a>
|
||||
<a class="link" href="erase.html#range.reference.algorithms.range_algorithm_new_algorithms.erase.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Container</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span>
|
||||
<span class="identifier">iterator_range</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">></span> <span class="identifier">to_erase</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.erase.description"></a><h6>
|
||||
<a name="id3255222"></a>
|
||||
<a class="link" href="erase.html#range.reference.algorithms.range_algorithm_new_algorithms.erase.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">erase</span></code> the iterator range
|
||||
<code class="computeroutput"><span class="identifier">to_erase</span></code> from the container
|
||||
<code class="computeroutput"><span class="identifier">target</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.erase.definition"></a><h6>
|
||||
<a name="id3255282"></a>
|
||||
<a class="link" href="erase.html#range.reference.algorithms.range_algorithm_new_algorithms.erase.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.erase.requirements"></a><h6>
|
||||
<a name="id3255357"></a>
|
||||
<a class="link" href="erase.html#range.reference.algorithms.range_algorithm_new_algorithms.erase.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Container</span></code> supports
|
||||
erase of an iterator range.
|
||||
</li></ol></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.erase.complexity"></a><h6>
|
||||
<a name="id3255402"></a>
|
||||
<a class="link" href="erase.html#range.reference.algorithms.range_algorithm_new_algorithms.erase.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Proprotional to <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">to_erase</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,150 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>for_each</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="prev" href="erase.html" title="erase">
|
||||
<link rel="next" href="insert.html" title="insert">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="erase.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="insert.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="for_each">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.for_each"></a><a class="link" href="for_each.html" title="for_each">
|
||||
for_each</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.for_each.prototype"></a><h6>
|
||||
<a name="id3255474"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_new_algorithms.for_each.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryFunction</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">BinaryFunction</span> <span class="identifier">for_each</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryFunction</span> <span class="identifier">fn</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryFunction</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">BinaryFunction</span> <span class="identifier">for_each</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryFunction</span> <span class="identifier">fn</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryFunction</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">BinaryFunction</span> <span class="identifier">for_each</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryFunction</span> <span class="identifier">fn</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryFunction</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">BinaryFunction</span> <span class="identifier">for_each</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryFunction</span> <span class="identifier">fn</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.for_each.description"></a><h6>
|
||||
<a name="id3256058"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_new_algorithms.for_each.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">for_each</span></code> traverses forward
|
||||
through <code class="computeroutput"><span class="identifier">rng1</span></code> and <code class="computeroutput"><span class="identifier">rng2</span></code> simultaneously. For each iteration,
|
||||
the element <code class="computeroutput"><span class="identifier">x</span></code> is used
|
||||
from <code class="computeroutput"><span class="identifier">rng1</span></code> and the corresponding
|
||||
element <code class="computeroutput"><span class="identifier">y</span></code> is used from
|
||||
<code class="computeroutput"><span class="identifier">rng2</span></code> to invoke <code class="computeroutput"><span class="identifier">fn</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
Iteration is stopped upon reaching the end of the shorter of <code class="computeroutput"><span class="identifier">rng1</span></code>, or <code class="computeroutput"><span class="identifier">rng2</span></code>.
|
||||
It is safe to call this function with unequal length ranges.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.for_each.definition"></a><h6>
|
||||
<a name="id3256222"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_new_algorithms.for_each.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.for_each.requirements"></a><h6>
|
||||
<a name="id3256297"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_new_algorithms.for_each.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryFunction</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">BinaryFunctionConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryFunction</span></code>'s
|
||||
first argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglepassRange2</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryFunction</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ol></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.for_each.complexity"></a><h6>
|
||||
<a name="id3256453"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_new_algorithms.for_each.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Exactly <code class="computeroutput"><span class="identifier">min</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">),</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
applications of <code class="computeroutput"><span class="identifier">BinaryFunction</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="erase.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="insert.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,106 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>insert</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="prev" href="for_each.html" title="for_each">
|
||||
<link rel="next" href="overwrite.html" title="overwrite">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="for_each.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="overwrite.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="insert">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.insert"></a><a class="link" href="insert.html" title="insert">
|
||||
insert</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.insert.prototype"></a><h6>
|
||||
<a name="id3256563"></a>
|
||||
<a class="link" href="insert.html#range.reference.algorithms.range_algorithm_new_algorithms.insert.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Container</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">before</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">from</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.insert.description"></a><h6>
|
||||
<a name="id3256730"></a>
|
||||
<a class="link" href="insert.html#range.reference.algorithms.range_algorithm_new_algorithms.insert.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">insert</span></code> all of the elements
|
||||
in the range <code class="computeroutput"><span class="identifier">from</span></code> before
|
||||
the <code class="computeroutput"><span class="identifier">before</span></code> iterator into
|
||||
<code class="computeroutput"><span class="identifier">target</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.insert.definition"></a><h6>
|
||||
<a name="id3256802"></a>
|
||||
<a class="link" href="insert.html#range.reference.algorithms.range_algorithm_new_algorithms.insert.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">insert</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.insert.requirements"></a><h6>
|
||||
<a name="id3256876"></a>
|
||||
<a class="link" href="insert.html#range.reference.algorithms.range_algorithm_new_algorithms.insert.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Container</span></code> supports
|
||||
insert at a specified position.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">Container</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ol></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.insert.complexity"></a><h6>
|
||||
<a name="id3256971"></a>
|
||||
<a class="link" href="insert.html#range.reference.algorithms.range_algorithm_new_algorithms.insert.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">from</span><span class="special">)</span></code>
|
||||
assignments are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="for_each.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="overwrite.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,111 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>overwrite</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="prev" href="insert.html" title="insert">
|
||||
<link rel="next" href="push_back.html" title="push_back">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="insert.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="push_back.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="overwrite">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.overwrite"></a><a class="link" href="overwrite.html" title="overwrite">
|
||||
overwrite</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.overwrite.prototype"></a><h6>
|
||||
<a name="id3257045"></a>
|
||||
<a class="link" href="overwrite.html#range.reference.algorithms.range_algorithm_new_algorithms.overwrite.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">overwrite</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">from</span><span class="special">,</span>
|
||||
<span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">to</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.overwrite.description"></a><h6>
|
||||
<a name="id3257184"></a>
|
||||
<a class="link" href="overwrite.html#range.reference.algorithms.range_algorithm_new_algorithms.overwrite.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">overwrite</span></code> assigns the
|
||||
values from the range <code class="computeroutput"><span class="identifier">from</span></code>
|
||||
into the range <code class="computeroutput"><span class="identifier">to</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.overwrite.definition"></a><h6>
|
||||
<a name="id3257245"></a>
|
||||
<a class="link" href="overwrite.html#range.reference.algorithms.range_algorithm_new_algorithms.overwrite.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">overwrite</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.overwrite.requirements"></a><h6>
|
||||
<a name="id3257320"></a>
|
||||
<a class="link" href="overwrite.html#range.reference.algorithms.range_algorithm_new_algorithms.overwrite.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
mutable.
|
||||
</li>
|
||||
<li class="listitem"><code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">)</span>
|
||||
<span class="special"><=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">SinglePassRange2</span><span class="special">)</span></code></li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ol></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.overwrite.complexity"></a><h6>
|
||||
<a name="id3257490"></a>
|
||||
<a class="link" href="overwrite.html#range.reference.algorithms.range_algorithm_new_algorithms.overwrite.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code>
|
||||
assignments are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="insert.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="push_back.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,104 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>push_back</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="prev" href="overwrite.html" title="overwrite">
|
||||
<link rel="next" href="push_front.html" title="push_front">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="overwrite.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="push_front.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="push_back">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_back"></a><a class="link" href="push_back.html" title="push_back">
|
||||
push_back</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_back.prototype"></a><h6>
|
||||
<a name="id3257564"></a>
|
||||
<a class="link" href="push_back.html#range.reference.algorithms.range_algorithm_new_algorithms.push_back.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Container</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">push_back</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">from</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_back.description"></a><h6>
|
||||
<a name="id3257702"></a>
|
||||
<a class="link" href="push_back.html#range.reference.algorithms.range_algorithm_new_algorithms.push_back.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">push_back</span></code> all of the
|
||||
elements in the range <code class="computeroutput"><span class="identifier">from</span></code>
|
||||
to the back of the container <code class="computeroutput"><span class="identifier">target</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_back.definition"></a><h6>
|
||||
<a name="id3257764"></a>
|
||||
<a class="link" href="push_back.html#range.reference.algorithms.range_algorithm_new_algorithms.push_back.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">push_back</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_back.requirements"></a><h6>
|
||||
<a name="id3257839"></a>
|
||||
<a class="link" href="push_back.html#range.reference.algorithms.range_algorithm_new_algorithms.push_back.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Container</span></code> supports
|
||||
insert at <code class="computeroutput"><span class="identifier">end</span><span class="special">()</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">Container</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ol></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_back.complexity"></a><h6>
|
||||
<a name="id3257948"></a>
|
||||
<a class="link" href="push_back.html#range.reference.algorithms.range_algorithm_new_algorithms.push_back.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">from</span><span class="special">)</span></code>
|
||||
assignments are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="overwrite.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="push_front.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,104 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>push_front</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="prev" href="push_back.html" title="push_back">
|
||||
<link rel="next" href="remove_erase.html" title="remove_erase">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="push_back.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remove_erase.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="push_front">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_front"></a><a class="link" href="push_front.html" title="push_front">
|
||||
push_front</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_front.prototype"></a><h6>
|
||||
<a name="id3258022"></a>
|
||||
<a class="link" href="push_front.html#range.reference.algorithms.range_algorithm_new_algorithms.push_front.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Container</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">push_front</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">from</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_front.description"></a><h6>
|
||||
<a name="id3258160"></a>
|
||||
<a class="link" href="push_front.html#range.reference.algorithms.range_algorithm_new_algorithms.push_front.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">push_front</span></code> all of the
|
||||
elements in the range <code class="computeroutput"><span class="identifier">from</span></code>
|
||||
to the front of the container <code class="computeroutput"><span class="identifier">target</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_front.definition"></a><h6>
|
||||
<a name="id3258221"></a>
|
||||
<a class="link" href="push_front.html#range.reference.algorithms.range_algorithm_new_algorithms.push_front.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">push_front</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_front.requirements"></a><h6>
|
||||
<a name="id3258296"></a>
|
||||
<a class="link" href="push_front.html#range.reference.algorithms.range_algorithm_new_algorithms.push_front.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Container</span></code> supports
|
||||
insert at <code class="computeroutput"><span class="identifier">begin</span><span class="special">()</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">Container</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ol></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.push_front.complexity"></a><h6>
|
||||
<a name="id3258405"></a>
|
||||
<a class="link" href="push_front.html#range.reference.algorithms.range_algorithm_new_algorithms.push_front.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">from</span><span class="special">)</span></code>
|
||||
assignments are performed.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="push_back.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remove_erase.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,92 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>remove_erase</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="prev" href="push_front.html" title="push_front">
|
||||
<link rel="next" href="remove_erase_if.html" title="remove_erase_if">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="push_front.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remove_erase_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="remove_erase">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase"></a><a class="link" href="remove_erase.html" title="remove_erase">
|
||||
remove_erase</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.prototype"></a><h6>
|
||||
<a name="id3258479"></a>
|
||||
<a class="link" href="remove_erase.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Container</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">T</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">remove_erase</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">T</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.description"></a><h6>
|
||||
<a name="id3258617"></a>
|
||||
<a class="link" href="remove_erase.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">remove_erase</span></code> actually
|
||||
eliminates the elements equal to <code class="computeroutput"><span class="identifier">val</span></code>
|
||||
from the container. This is in contrast to the <code class="computeroutput"><span class="identifier">remove</span></code>
|
||||
algorithm which merely rearranges elements.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.definition"></a><h6>
|
||||
<a name="id3258678"></a>
|
||||
<a class="link" href="remove_erase.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.requirements"></a><h6>
|
||||
<a name="id3258753"></a>
|
||||
<a class="link" href="remove_erase.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1"><li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Container</span></code> supports
|
||||
erase of an iterator range.
|
||||
</li></ol></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.complexity"></a><h6>
|
||||
<a name="id3258800"></a>
|
||||
<a class="link" href="remove_erase.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Proportional to <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">target</span><span class="special">)</span></code>s.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="push_front.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="remove_erase_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+99
@@ -0,0 +1,99 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>remove_erase_if</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_new_algorithms.html" title="New algorithms">
|
||||
<link rel="prev" href="remove_erase.html" title="remove_erase">
|
||||
<link rel="next" href="../range_numeric.html" title="Numeric algorithms">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="remove_erase.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../range_numeric.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="remove_erase_if">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if"></a><a class="link" href="remove_erase_if.html" title="remove_erase_if">
|
||||
remove_erase_if</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.prototype"></a><h6>
|
||||
<a name="id3258872"></a>
|
||||
<a class="link" href="remove_erase_if.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Container</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Pred</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">void</span> <span class="identifier">remove_erase</span><span class="special">(</span><span class="identifier">Container</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span>
|
||||
<span class="identifier">Pred</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.description"></a><h6>
|
||||
<a name="id3259002"></a>
|
||||
<a class="link" href="remove_erase_if.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">remove_erase_if</span></code> removes
|
||||
the elements <code class="computeroutput"><span class="identifier">x</span></code> that satisfy
|
||||
<code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>
|
||||
from the container. This is in contrast to the <code class="computeroutput"><span class="identifier">erase</span></code>
|
||||
algorithm which merely rearranges elements.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.definition"></a><h6>
|
||||
<a name="id3259088"></a>
|
||||
<a class="link" href="remove_erase_if.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm_ext</span><span class="special">/</span><span class="identifier">erase</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.requirements"></a><h6>
|
||||
<a name="id3259162"></a>
|
||||
<a class="link" href="remove_erase_if.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="orderedlist"><ol class="orderedlist" type="1">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Container</span></code> supports
|
||||
erase of an iterator range.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Pred</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">Predicate</span></code> Concept.
|
||||
</li>
|
||||
</ol></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.complexity"></a><h6>
|
||||
<a name="id3259234"></a>
|
||||
<a class="link" href="remove_erase_if.html#range.reference.algorithms.range_algorithm_new_algorithms.remove_erase_if.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Proportional to <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">target</span><span class="special">)</span></code>s.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="remove_erase.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_new_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../range_numeric.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,80 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Non-mutating algorithms</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../algorithms.html" title="Range Algorithm">
|
||||
<link rel="prev" href="range_algorithm_mutating_algorithms/unique.html" title="Range Algorithm - unique">
|
||||
<link rel="next" href="range_algorithm_non_mutating_algorithms/adjacent_find.html" title="Range Algorithm - adjacent_find">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="range_algorithm_mutating_algorithms/unique.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_algorithm_non_mutating_algorithms/adjacent_find.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Non-mutating algorithms">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms"></a><a class="link" href="range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
Non-mutating algorithms</a>
|
||||
</h4></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/adjacent_find.html">
|
||||
Range Algorithm - adjacent_find</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/binary_search.html">
|
||||
binary_search</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/count.html">
|
||||
count</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/equal.html">
|
||||
equal</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/equal_range.html">
|
||||
equal_range</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/for_each.html">
|
||||
for_each</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/find.html">
|
||||
find</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/find_end.html">
|
||||
find_end</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/find_first_of.html">
|
||||
find_first_of</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/find_if.html">
|
||||
find_if</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/lexicographical_compare.html">
|
||||
lexicographical_compare</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/lower_bound.html">
|
||||
lower_bound</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/max_element.html">
|
||||
max_element</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/min_element.html">
|
||||
min_element</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/mismatch.html">
|
||||
mismatch</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/search.html">
|
||||
search</a></span></dt>
|
||||
<dt><span class="section"><a href="range_algorithm_non_mutating_algorithms/upper_bound.html">
|
||||
upper_bound</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="range_algorithm_mutating_algorithms/unique.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_algorithm_non_mutating_algorithms/adjacent_find.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+168
@@ -0,0 +1,168 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Range Algorithm - adjacent_find</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="next" href="binary_search.html" title="binary_search">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary_search.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Range Algorithm - adjacent_find">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find"></a><a class="link" href="adjacent_find.html" title="Range Algorithm - adjacent_find">
|
||||
Range Algorithm - adjacent_find</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.prototype"></a><h6>
|
||||
<a name="id3221186"></a>
|
||||
<a class="link" href="adjacent_find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">adjacent_find</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">adjacent_find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">adjacent_find</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPred</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">adjacent_find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPred</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="identifier">range_return_value_re</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">adjacent_find</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="identifier">range_return_value_re</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">adjacent_find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">adjacent_find</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">adjacent_find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.description"></a><h6>
|
||||
<a name="id3222176"></a>
|
||||
<a class="link" href="adjacent_find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>Non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">adjacent_find</span></code> finds the
|
||||
first adjacent elements <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>
|
||||
in <code class="computeroutput"><span class="identifier">rng</span></code> where <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span> <span class="identifier">y</span></code>
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>Predicate versions:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">adjacent_find</span></code> finds the
|
||||
first adjacent elements <code class="computeroutput"><span class="special">[</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">]</span></code>
|
||||
in <code class="computeroutput"><span class="identifier">rng</span></code> where <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.definition"></a><h6>
|
||||
<a name="id3222390"></a>
|
||||
<a class="link" href="adjacent_find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">adjacent_find</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.requirements"></a><h6>
|
||||
<a name="id3222465"></a>
|
||||
<a class="link" href="adjacent_find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions of adjacent_find:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions of adjacent_find:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
first argument type and to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.complexity"></a><h6>
|
||||
<a name="id3222650"></a>
|
||||
<a class="link" href="adjacent_find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.adjacent_find.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. If <code class="computeroutput"><span class="identifier">empty</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
then no comparisons are performed; otherwise, at most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span></code>
|
||||
comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="binary_search.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+157
@@ -0,0 +1,157 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>binary_search</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="adjacent_find.html" title="Range Algorithm - adjacent_find">
|
||||
<link rel="next" href="count.html" title="count">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adjacent_find.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="count.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="binary_search">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search"></a><a class="link" href="binary_search.html" title="binary_search">
|
||||
binary_search</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.prototype"></a><h6>
|
||||
<a name="id3222758"></a>
|
||||
<a class="link" href="binary_search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="identifier">binary_search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="identifier">binary_search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.description"></a><h6>
|
||||
<a name="id3223041"></a>
|
||||
<a class="link" href="binary_search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">binary_search</span></code> returns
|
||||
<code class="computeroutput"><span class="keyword">true</span></code> if and only if the
|
||||
value <code class="computeroutput"><span class="identifier">val</span></code> exists in the
|
||||
range <code class="computeroutput"><span class="identifier">rng</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.definition"></a><h6>
|
||||
<a name="id3223114"></a>
|
||||
<a class="link" href="binary_search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">binary_search</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.requirements"></a><h6>
|
||||
<a name="id3223189"></a>
|
||||
<a class="link" href="binary_search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions of binary_search:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">Value</span></code>
|
||||
is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions of binary_search:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.precondition_"></a><h6>
|
||||
<a name="id3223449"></a>
|
||||
<a class="link" href="binary_search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate version:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> is ordered in ascending
|
||||
order according to <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate version:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> is ordered in ascending
|
||||
order according to the function object <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.complexity"></a><h6>
|
||||
<a name="id3223548"></a>
|
||||
<a class="link" href="binary_search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.binary_search.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
For non-random-access ranges, the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code> where <code class="computeroutput"><span class="identifier">N</span></code>
|
||||
is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
For random-access ranges, the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span> <span class="identifier">N</span><span class="special">)</span></code>
|
||||
where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="adjacent_find.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="count.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+108
@@ -0,0 +1,108 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>count</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="binary_search.html" title="binary_search">
|
||||
<link rel="next" href="equal.html" title="equal">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="binary_search.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="equal.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="count">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.count"></a><a class="link" href="count.html" title="count">
|
||||
count</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.prototype"></a><h6>
|
||||
<a name="id3223724"></a>
|
||||
<a class="link" href="count.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="identifier">SinglePassRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">count</span><span class="special">(</span><span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_difference</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">count</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.description"></a><h6>
|
||||
<a name="id3224023"></a>
|
||||
<a class="link" href="count.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">count</span></code> returns the number
|
||||
of elements <code class="computeroutput"><span class="identifier">x</span></code> in <code class="computeroutput"><span class="identifier">rng</span></code> where <code class="computeroutput"><span class="identifier">x</span>
|
||||
<span class="special">==</span> <span class="identifier">val</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.definition"></a><h6>
|
||||
<a name="id3224115"></a>
|
||||
<a class="link" href="count.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">count</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.requirements"></a><h6>
|
||||
<a name="id3224190"></a>
|
||||
<a class="link" href="count.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
An object of <code class="computeroutput"><span class="identifier">SinglePassRange</span></code>'s
|
||||
value type can be compared for equality with an object of type <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.complexity"></a><h6>
|
||||
<a name="id3224319"></a>
|
||||
<a class="link" href="count.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.count.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="binary_search.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="equal.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+163
@@ -0,0 +1,163 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>equal</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="count.html" title="count">
|
||||
<link rel="next" href="equal_range.html" title="equal_range">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="count.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="equal_range.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="equal">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal"></a><a class="link" href="equal.html" title="equal">
|
||||
equal</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.prototype"></a><h6>
|
||||
<a name="id3224390"></a>
|
||||
<a class="link" href="equal.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="identifier">equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="identifier">equal</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.description"></a><h6>
|
||||
<a name="id3224679"></a>
|
||||
<a class="link" href="equal.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">equal</span></code> returns <code class="computeroutput"><span class="keyword">true</span></code> if <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code> is equal to the <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span></code> and for each element <code class="computeroutput"><span class="identifier">x</span></code>
|
||||
in <code class="computeroutput"><span class="identifier">rng1</span></code>, the corresponding
|
||||
element <code class="computeroutput"><span class="identifier">y</span></code> in <code class="computeroutput"><span class="identifier">rng2</span></code> is equal. Otherwise <code class="computeroutput"><span class="keyword">false</span></code> is returned.
|
||||
</p>
|
||||
<p>
|
||||
In this range version of <code class="computeroutput"><span class="identifier">equal</span></code>
|
||||
it is perfectly acceptable to pass in two ranges of unequal lengths.
|
||||
</p>
|
||||
<p>
|
||||
Elements are considered equal in the non-predicate version if <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code>
|
||||
returns <code class="computeroutput"><span class="keyword">true</span></code>. Elements are
|
||||
considered equal in the predicate version if <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span><span class="identifier">y</span><span class="special">)</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.definition"></a><h6>
|
||||
<a name="id3224923"></a>
|
||||
<a class="link" href="equal.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">equal</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.requirements"></a><h6>
|
||||
<a name="id3224998"></a>
|
||||
<a class="link" href="equal.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type can be compared for equality with <code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
first argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.complexity"></a><h6>
|
||||
<a name="id3225296"></a>
|
||||
<a class="link" href="equal.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="identifier">min</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">),</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="count.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="equal_range.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+179
@@ -0,0 +1,179 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>equal_range</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="equal.html" title="equal">
|
||||
<link rel="next" href="for_each.html" title="for_each">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="equal.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="equal_range">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range"></a><a class="link" href="equal_range.html" title="equal_range">
|
||||
equal_range</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.prototype"></a><h6>
|
||||
<a name="id3225397"></a>
|
||||
<a class="link" href="equal_range.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span>
|
||||
<span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span>
|
||||
<span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SortPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span>
|
||||
<span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">SortPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SortPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span><span class="special">></span>
|
||||
<span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&</span> <span class="identifier">val</span><span class="special">,</span> <span class="identifier">SortPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.description"></a><h6>
|
||||
<a name="id3226278"></a>
|
||||
<a class="link" href="equal_range.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">equal_range</span></code> returns a
|
||||
range in the form of a pair of iterators where all of the elements are
|
||||
equal to <code class="computeroutput"><span class="identifier">val</span></code>. If no values
|
||||
are found that are equal to <code class="computeroutput"><span class="identifier">val</span></code>,
|
||||
then an empty range is returned, hence <code class="computeroutput"><span class="identifier">result</span><span class="special">.</span><span class="identifier">first</span> <span class="special">==</span> <span class="identifier">result</span><span class="special">.</span><span class="identifier">second</span></code>.
|
||||
For the non-predicate versions of <code class="computeroutput"><span class="identifier">equal_range</span></code>
|
||||
the equality of elements is determined by <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code>. For the predicate versions of <code class="computeroutput"><span class="identifier">equal_range</span></code> the equality of elements
|
||||
is determined by <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.definition"></a><h6>
|
||||
<a name="id3226432"></a>
|
||||
<a class="link" href="equal_range.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">equal_range</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.requirements"></a><h6>
|
||||
<a name="id3226507"></a>
|
||||
<a class="link" href="equal_range.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">Value</span></code>
|
||||
is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SortPredicate</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is the same as <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to both of <code class="computeroutput"><span class="identifier">SortPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.precondition_"></a><h6>
|
||||
<a name="id3226766"></a>
|
||||
<a class="link" href="equal_range.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<p>
|
||||
For the non-predicate versions: <code class="computeroutput"><span class="identifier">rng</span></code>
|
||||
is ordered in ascending order according to <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
For the predicate versions: <code class="computeroutput"><span class="identifier">rng</span></code>
|
||||
is ordered in ascending order according to <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.complexity"></a><h6>
|
||||
<a name="id3226848"></a>
|
||||
<a class="link" href="equal_range.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.equal_range.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
For random-access ranges, the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span> <span class="identifier">N</span><span class="special">)</span></code>,
|
||||
otherwise the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="equal.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+123
@@ -0,0 +1,123 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>find</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="for_each.html" title="for_each">
|
||||
<link rel="next" href="find_end.html" title="find_end">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="for_each.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="find_end.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="find">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find"></a><a class="link" href="find.html" title="find">
|
||||
find</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.prototype"></a><h6>
|
||||
<a name="id3227540"></a>
|
||||
<a class="link" href="find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find</span><span class="special">(</span><span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find</span><span class="special">(</span><span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.description"></a><h6>
|
||||
<a name="id3228119"></a>
|
||||
<a class="link" href="find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">find</span></code>
|
||||
that return an iterator, returns the first iterator in the range <code class="computeroutput"><span class="identifier">rng</span></code> such that <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span> <span class="special">==</span> <span class="identifier">value</span></code>. <code class="computeroutput"><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> is returned if no such iterator exists.
|
||||
The versions of find that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.definition"></a><h6>
|
||||
<a name="id3228244"></a>
|
||||
<a class="link" href="find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">find</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.requirements"></a><h6>
|
||||
<a name="id3228320"></a>
|
||||
<a class="link" href="find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code>
|
||||
is defined for type <code class="computeroutput"><span class="identifier">Value</span></code>
|
||||
to be compared with the <code class="computeroutput"><span class="identifier">SinglePassRange</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.complexity"></a><h6>
|
||||
<a name="id3228437"></a>
|
||||
<a class="link" href="find.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> comparisons for equality.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="for_each.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="find_end.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+204
@@ -0,0 +1,204 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>find_end</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="find.html" title="find">
|
||||
<link rel="next" href="find_first_of.html" title="find_first_of">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="find.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="find_first_of.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="find_end">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end"></a><a class="link" href="find_end.html" title="find_end">
|
||||
find_end</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.prototype"></a><h6>
|
||||
<a name="id3228510"></a>
|
||||
<a class="link" href="find_end.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_end</span><span class="special">(</span><span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_end</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_end</span><span class="special">(</span><span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_end</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_end</span><span class="special">(</span><span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_end</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_end</span><span class="special">(</span><span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_end</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.description"></a><h6>
|
||||
<a name="id3229857"></a>
|
||||
<a class="link" href="find_end.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">find_end</span></code>
|
||||
that return an iterator, return an iterator to the beginning of the last
|
||||
sub-sequence equal to <code class="computeroutput"><span class="identifier">rng2</span></code>
|
||||
within <code class="computeroutput"><span class="identifier">rng1</span></code>. Equality
|
||||
is determined by <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> for non-predicate versions of <code class="computeroutput"><span class="identifier">find_end</span></code>, and by satisfying <code class="computeroutput"><span class="identifier">pred</span></code> in the predicate versions. The
|
||||
versions of <code class="computeroutput"><span class="identifier">find_end</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.definition"></a><h6>
|
||||
<a name="id3229993"></a>
|
||||
<a class="link" href="find_end.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">find_end</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.requirements"></a><h6>
|
||||
<a name="id3230068"></a>
|
||||
<a class="link" href="find_end.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Objects of <code class="computeroutput"><span class="identifier">ForwardRange1</span></code>'s
|
||||
value type can be compared for equality with objects of <code class="computeroutput"><span class="identifier">ForwardRange2</span></code>'s value type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
first argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.complexity"></a><h6>
|
||||
<a name="id3230367"></a>
|
||||
<a class="link" href="find_end.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_end.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
The number of comparisons is proportional to <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span></code>. If both <code class="computeroutput"><span class="identifier">ForwardRange1</span></code>
|
||||
and <code class="computeroutput"><span class="identifier">ForwardRange2</span></code> are
|
||||
models of <code class="computeroutput"><span class="identifier">BidirectionalRangeConcept</span></code>
|
||||
then the average complexity is linear and the worst case is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="find.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="find_first_of.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+200
@@ -0,0 +1,200 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>find_first_of</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="find_end.html" title="find_end">
|
||||
<link rel="next" href="find_if.html" title="find_if">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="find_end.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="find_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="find_first_of">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of"></a><a class="link" href="find_first_of.html" title="find_first_of">
|
||||
find_first_of</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.prototype"></a><h6>
|
||||
<a name="id3230549"></a>
|
||||
<a class="link" href="find_first_of.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_first_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_first_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_first_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_first_of</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_first_of</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.description"></a><h6>
|
||||
<a name="id3231897"></a>
|
||||
<a class="link" href="find_first_of.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">find_first_of</span></code>
|
||||
that return an iterator, return an iterator to the first occurrence in
|
||||
<code class="computeroutput"><span class="identifier">rng1</span></code> of any of the elements
|
||||
in <code class="computeroutput"><span class="identifier">rng2</span></code>. Equality is
|
||||
determined by <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code>
|
||||
for non-predicate versions of <code class="computeroutput"><span class="identifier">find_first_of</span></code>,
|
||||
and by satisfying <code class="computeroutput"><span class="identifier">pred</span></code>
|
||||
in the predicate versions.
|
||||
</p>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">find_first_of</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.definition"></a><h6>
|
||||
<a name="id3232039"></a>
|
||||
<a class="link" href="find_first_of.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">find_first_of</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.requirements"></a><h6>
|
||||
<a name="id3232114"></a>
|
||||
<a class="link" href="find_first_of.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>,
|
||||
and can be compared for equality with <code class="computeroutput"><span class="identifier">ForwardRange2</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
first argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.complexity"></a><h6>
|
||||
<a name="id3232371"></a>
|
||||
<a class="link" href="find_first_of.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_first_of.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
At most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span> <span class="special">*</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span></code> comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="find_end.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="find_if.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+133
@@ -0,0 +1,133 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>find_if</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="find_first_of.html" title="find_first_of">
|
||||
<link rel="next" href="lexicographical_compare.html" title="lexicographical_compare">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="find_first_of.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexicographical_compare.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="find_if">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if"></a><a class="link" href="find_if.html" title="find_if">
|
||||
find_if</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.prototype"></a><h6>
|
||||
<a name="id3232469"></a>
|
||||
<a class="link" href="find_if.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">UnaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_if</span><span class="special">(</span><span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">UnaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_if</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_if</span><span class="special">(</span><span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">find_if</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.description"></a><h6>
|
||||
<a name="id3233050"></a>
|
||||
<a class="link" href="find_if.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">find_if</span></code>
|
||||
that return an iterator, returns the first iterator in the range <code class="computeroutput"><span class="identifier">rng</span></code> such that <code class="computeroutput"><span class="identifier">pred</span><span class="special">(*</span><span class="identifier">i</span><span class="special">)</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
<code class="computeroutput"><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
is returned if no such iterator exists.
|
||||
</p>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">find_if</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines found in the same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.definition"></a><h6>
|
||||
<a name="id3233187"></a>
|
||||
<a class="link" href="find_if.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">find_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.requirements"></a><h6>
|
||||
<a name="id3233262"></a>
|
||||
<a class="link" href="find_if.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryPredicate</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">PredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The value type of <code class="computeroutput"><span class="identifier">SinglePassRange</span></code>
|
||||
is convertible to the argument type of <code class="computeroutput"><span class="identifier">UnaryPredicate</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.precondition_"></a><h6>
|
||||
<a name="id3233364"></a>
|
||||
<a class="link" href="find_if.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<p>
|
||||
For each iterator <code class="computeroutput"><span class="identifier">i</span></code> in
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code>, <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span></code> is in the domain of <code class="computeroutput"><span class="identifier">UnaryPredicate</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.complexity"></a><h6>
|
||||
<a name="id3233440"></a>
|
||||
<a class="link" href="find_if.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.find_if.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> invocations of <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="find_first_of.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lexicographical_compare.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+113
@@ -0,0 +1,113 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>for_each</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="equal_range.html" title="equal_range">
|
||||
<link rel="next" href="find.html" title="find">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="equal_range.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="find.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="for_each">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each"></a><a class="link" href="for_each.html" title="for_each">
|
||||
for_each</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.prototype"></a><h6>
|
||||
<a name="id3226951"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryFunction</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">UnaryFunction</span> <span class="identifier">for_each</span><span class="special">(</span><span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">fun</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">UnaryFunction</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">UnaryFunction</span> <span class="identifier">for_each</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">fun</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.description"></a><h6>
|
||||
<a name="id3227179"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">for_each</span></code> traverses forward
|
||||
through <code class="computeroutput"><span class="identifier">rng</span></code> and for each
|
||||
element <code class="computeroutput"><span class="identifier">x</span></code> it invokes
|
||||
<code class="computeroutput"><span class="identifier">fun</span><span class="special">(</span><span class="identifier">x</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.definition"></a><h6>
|
||||
<a name="id3227264"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">for_each</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.requirements"></a><h6>
|
||||
<a name="id3227338"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.requirements">Requirements</a>
|
||||
</h6>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryFunction</span></code> is a
|
||||
model of the <code class="computeroutput"><span class="identifier">UnaryFunctionConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">UnaryFunction</span></code> does
|
||||
not apply any non-constant operation through its argument.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">UnaryFunction</span></code>'s
|
||||
argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.complexity"></a><h6>
|
||||
<a name="id3227457"></a>
|
||||
<a class="link" href="for_each.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.for_each.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code> applications of <code class="computeroutput"><span class="identifier">UnaryFunction</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="equal_range.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="find.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+170
@@ -0,0 +1,170 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>lexicographical_compare</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="find_if.html" title="find_if">
|
||||
<link rel="next" href="lower_bound.html" title="lower_bound">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="find_if.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lower_bound.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="lexicographical_compare">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare"></a><a class="link" href="lexicographical_compare.html" title="lexicographical_compare">
|
||||
lexicographical_compare</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.prototype"></a><h6>
|
||||
<a name="id3233525"></a>
|
||||
<a class="link" href="lexicographical_compare.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="identifier">lexicographical_compare</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">bool</span> <span class="identifier">lexicographical_compare</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span>
|
||||
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.description"></a><h6>
|
||||
<a name="id3233815"></a>
|
||||
<a class="link" href="lexicographical_compare.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">lexicographical_compare</span></code>
|
||||
compares element by element <code class="computeroutput"><span class="identifier">rng1</span></code>
|
||||
against <code class="computeroutput"><span class="identifier">rng2</span></code>. If the
|
||||
element from <code class="computeroutput"><span class="identifier">rng1</span></code> is
|
||||
less than the element from <code class="computeroutput"><span class="identifier">rng2</span></code>
|
||||
then <code class="computeroutput"><span class="keyword">true</span></code> is returned. If
|
||||
the end of <code class="computeroutput"><span class="identifier">rng1</span></code> without
|
||||
reaching the end of <code class="computeroutput"><span class="identifier">rng2</span></code>
|
||||
this also causes the return value to be <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
The return value is <code class="computeroutput"><span class="keyword">false</span></code>
|
||||
in all other circumstances. The elements are compared using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code>
|
||||
in the non-predicate versions of <code class="computeroutput"><span class="identifier">lexicographical_compare</span></code>
|
||||
and using <code class="computeroutput"><span class="identifier">pred</span></code> in the
|
||||
predicate versions.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.definition"></a><h6>
|
||||
<a name="id3233997"></a>
|
||||
<a class="link" href="lexicographical_compare.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">lexicographical_compare</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.requirements"></a><h6>
|
||||
<a name="id3234072"></a>
|
||||
<a class="link" href="lexicographical_compare.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions of lexicographical_compare:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
Let <code class="computeroutput"><span class="identifier">x</span></code> be an object
|
||||
of <code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type. Let <code class="computeroutput"><span class="identifier">y</span></code> be
|
||||
an obect of <code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type. <code class="computeroutput"><span class="identifier">x</span> <span class="special"><</span>
|
||||
<span class="identifier">y</span></code> must be valid. <code class="computeroutput"><span class="identifier">y</span> <span class="special"><</span>
|
||||
<span class="identifier">x</span></code> must be valid.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions of lexicographical_compare:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
first argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.complexity"></a><h6>
|
||||
<a name="id3234440"></a>
|
||||
<a class="link" href="lexicographical_compare.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lexicographical_compare.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="number">2</span> <span class="special">*</span>
|
||||
<span class="identifier">min</span><span class="special">(</span><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">),</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">))</span></code>
|
||||
comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="find_if.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="lower_bound.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+188
@@ -0,0 +1,188 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>lower_bound</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="lexicographical_compare.html" title="lexicographical_compare">
|
||||
<link rel="next" href="max_element.html" title="max_element">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="lexicographical_compare.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="max_element.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="lower_bound">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound"></a><a class="link" href="lower_bound.html" title="lower_bound">
|
||||
lower_bound</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.prototype"></a><h6>
|
||||
<a name="id3234552"></a>
|
||||
<a class="link" href="lower_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.description"></a><h6>
|
||||
<a name="id3235132"></a>
|
||||
<a class="link" href="lower_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">lower_bound</span></code>
|
||||
that return an iterator, returns the first iterator in the range <code class="computeroutput"><span class="identifier">rng</span></code> such that: without predicate -
|
||||
<code class="computeroutput"><span class="special">*</span><span class="identifier">i</span>
|
||||
<span class="special"><</span> <span class="identifier">value</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">false</span></code>, with predicate
|
||||
- <code class="computeroutput"><span class="identifier">pred</span><span class="special">(*</span><span class="identifier">i</span><span class="special">,</span> <span class="identifier">value</span><span class="special">)</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">false</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
is returned if no such iterator exists.
|
||||
</p>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">lower_bound</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.definition"></a><h6>
|
||||
<a name="id3235333"></a>
|
||||
<a class="link" href="lower_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">lower_bound</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.requirements"></a><h6>
|
||||
<a name="id3235407"></a>
|
||||
<a class="link" href="lower_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">Value</span></code>
|
||||
is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.precondition_"></a><h6>
|
||||
<a name="id3235667"></a>
|
||||
<a class="link" href="lower_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> is sorted in ascending
|
||||
order according to <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> is sorted in ascending
|
||||
order according to <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.complexity"></a><h6>
|
||||
<a name="id3235766"></a>
|
||||
<a class="link" href="lower_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.lower_bound.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
For ranges that model the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> concept the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span> <span class="identifier">N</span><span class="special">)</span></code>,
|
||||
where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
For all other range types the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="lexicographical_compare.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="max_element.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+166
@@ -0,0 +1,166 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>max_element</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="lower_bound.html" title="lower_bound">
|
||||
<link rel="next" href="min_element.html" title="min_element">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="lower_bound.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="min_element.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="max_element">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element"></a><a class="link" href="max_element.html" title="max_element">
|
||||
max_element</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.prototype"></a><h6>
|
||||
<a name="id3235916"></a>
|
||||
<a class="link" href="max_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">max_element</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">max_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">max_element</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">max_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">max_element</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value_re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">max_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">max_element</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">max_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.description"></a><h6>
|
||||
<a name="id3236912"></a>
|
||||
<a class="link" href="max_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">max_element</span></code>
|
||||
that return an iterator, return the iterator to the maximum value as
|
||||
determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> if a predicate is not supplied. Otherwise
|
||||
the predicate <code class="computeroutput"><span class="identifier">pred</span></code> is
|
||||
used to determine the maximum value. The versions of <code class="computeroutput"><span class="identifier">max_element</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.definition"></a><h6>
|
||||
<a name="id3237016"></a>
|
||||
<a class="link" href="max_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">max_element</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.requirements"></a><h6>
|
||||
<a name="id3237090"></a>
|
||||
<a class="link" href="max_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.complexity"></a><h6>
|
||||
<a name="id3237264"></a>
|
||||
<a class="link" href="max_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.max_element.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Zero comparisons if <code class="computeroutput"><span class="identifier">empty</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>, otherwise <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span></code>
|
||||
comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="lower_bound.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="min_element.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+166
@@ -0,0 +1,166 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>min_element</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="max_element.html" title="max_element">
|
||||
<link rel="next" href="mismatch.html" title="mismatch">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="max_element.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mismatch.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="min_element">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element"></a><a class="link" href="min_element.html" title="min_element">
|
||||
min_element</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.prototype"></a><h6>
|
||||
<a name="id3237372"></a>
|
||||
<a class="link" href="min_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">min_element</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">min_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">min_element</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">min_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">min_element</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value_re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">min_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">min_element</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">min_element</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.description"></a><h6>
|
||||
<a name="id3238369"></a>
|
||||
<a class="link" href="min_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">min_element</span></code>
|
||||
that return an iterator, return the iterator to the minimum value as
|
||||
determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code> if a predicate is not supplied. Otherwise
|
||||
the predicate <code class="computeroutput"><span class="identifier">pred</span></code> is
|
||||
used to determine the minimum value. The versions of <code class="computeroutput"><span class="identifier">min_element</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.definition"></a><h6>
|
||||
<a name="id3238472"></a>
|
||||
<a class="link" href="min_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">min_element</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.requirements"></a><h6>
|
||||
<a name="id3238547"></a>
|
||||
<a class="link" href="min_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.complexity"></a><h6>
|
||||
<a name="id3238721"></a>
|
||||
<a class="link" href="min_element.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.min_element.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. Zero comparisons if <code class="computeroutput"><span class="identifier">empty</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>, otherwise <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">-</span> <span class="number">1</span></code>
|
||||
comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="max_element.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="mismatch.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+222
@@ -0,0 +1,222 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>mismatch</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="min_element.html" title="min_element">
|
||||
<link rel="next" href="search.html" title="search">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="min_element.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="search.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="mismatch">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch"></a><a class="link" href="mismatch.html" title="mismatch">
|
||||
mismatch</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.prototype"></a><h6>
|
||||
<a name="id3238829"></a>
|
||||
<a class="link" href="mismatch.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">mismatch</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">mismatch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">mismatch</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">mismatch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">mismatch</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">mismatch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">mismatch</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">SinglePassRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">SinglePassRange2</span><span class="special">>::</span><span class="identifier">type</span> <span class="special">></span>
|
||||
<span class="identifier">mismatch</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="identifier">SinglePassRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span>
|
||||
<span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.description"></a><h6>
|
||||
<a name="id3240549"></a>
|
||||
<a class="link" href="mismatch.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">mismatch</span></code>
|
||||
that return an iterator, return an iterator to the first position where
|
||||
<code class="computeroutput"><span class="identifier">rng1</span></code> and <code class="computeroutput"><span class="identifier">rng2</span></code> differ.
|
||||
</p>
|
||||
<p>
|
||||
Equality is determined by <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> for non-predicate versions of <code class="computeroutput"><span class="identifier">mismatch</span></code>, and by satisfying <code class="computeroutput"><span class="identifier">pred</span></code> in the predicate versions.
|
||||
</p>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">mismatch</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.definition"></a><h6>
|
||||
<a name="id3240690"></a>
|
||||
<a class="link" href="mismatch.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">mismatch</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.requirements"></a><h6>
|
||||
<a name="id3240764"></a>
|
||||
<a class="link" href="mismatch.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>s value
|
||||
type can be compared for equality with <code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code> is
|
||||
a model of the <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
|
||||
Pass Range</a> Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange1</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
first argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">SinglePassRange2</span></code>'s
|
||||
value type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.precondition_"></a><h6>
|
||||
<a name="id3241062"></a>
|
||||
<a class="link" href="mismatch.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng2</span><span class="special">)</span> <span class="special">>=</span> <span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.complexity"></a><h6>
|
||||
<a name="id3241138"></a>
|
||||
<a class="link" href="mismatch.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.mismatch.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Linear. At most <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code> comparisons.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="min_element.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="search.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+206
@@ -0,0 +1,206 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>search</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="mismatch.html" title="mismatch">
|
||||
<link rel="next" href="upper_bound.html" title="upper_bound">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="mismatch.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="upper_bound.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="search">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.search"></a><a class="link" href="search.html" title="search">
|
||||
search</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.prototype"></a><h6>
|
||||
<a name="id3241211"></a>
|
||||
<a class="link" href="search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">search</span><span class="special">(</span><span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange1</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="identifier">search</span><span class="special">(</span><span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">search</span><span class="special">(</span><span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span><span class="special">,</span>
|
||||
<span class="identifier">search</span><span class="special">(</span><span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange1</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange2</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">BinaryPredicate</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">search</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange1</span><span class="special">&</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">ForwardRange2</span><span class="special">&</span> <span class="identifier">rng2</span><span class="special">,</span> <span class="identifier">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.description"></a><h6>
|
||||
<a name="id3242562"></a>
|
||||
<a class="link" href="search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">search</span></code>
|
||||
that return an iterator, return an iterator to the start of the first
|
||||
subsequence in <code class="computeroutput"><span class="identifier">rng1</span></code> that
|
||||
is equal to the subsequence <code class="computeroutput"><span class="identifier">rng2</span></code>.
|
||||
The <code class="computeroutput"><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code>
|
||||
is returned if no such subsequence exists in <code class="computeroutput"><span class="identifier">rng1</span></code>.
|
||||
Equality is determined by <code class="computeroutput"><span class="keyword">operator</span><span class="special">==</span></code> for non-predicate versions of <code class="computeroutput"><span class="identifier">search</span></code>, and by satisfying <code class="computeroutput"><span class="identifier">pred</span></code> in the predicate versions.
|
||||
</p>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">search</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.definition"></a><h6>
|
||||
<a name="id3242738"></a>
|
||||
<a class="link" href="search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">search</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.requirements"></a><h6>
|
||||
<a name="id3242812"></a>
|
||||
<a class="link" href="search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code>'s value
|
||||
type is a model of the <code class="computeroutput"><span class="identifier">EqualityComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code>s value
|
||||
type can be compared for equality with <code class="computeroutput"><span class="identifier">ForwardRange2</span></code>'s
|
||||
value type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code> is a
|
||||
model of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">BinaryPredicateConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange1</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
first argument type.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange2</span></code>'s value
|
||||
type is convertible to <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
second argument type.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.complexity"></a><h6>
|
||||
<a name="id3243111"></a>
|
||||
<a class="link" href="search.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.search.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
Average complexity is Linear. Worst-case complexity is quadratic.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="mismatch.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="upper_bound.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
+185
@@ -0,0 +1,185 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>upper_bound</title>
|
||||
<link rel="stylesheet" href="../../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../range_algorithm_non_mutating_algorithms.html" title="Non-mutating algorithms">
|
||||
<link rel="prev" href="search.html" title="search">
|
||||
<link rel="next" href="../set_algorithms.html" title="Set algorithms">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="search.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../set_algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="upper_bound">
|
||||
<div class="titlepage"><div><div><h5 class="title">
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound"></a><a class="link" href="upper_bound.html" title="upper_bound">
|
||||
upper_bound</a>
|
||||
</h5></div></div></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.prototype"></a><h6>
|
||||
<a name="id3243161"></a>
|
||||
<a class="link" href="upper_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.prototype">Prototype</a>
|
||||
</h6>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
|
||||
<span class="keyword">template</span><span class="special"><</span>
|
||||
<span class="identifier">range_return_value</span> <span class="identifier">re</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span>
|
||||
<span class="keyword">class</span> <span class="identifier">Value</span>
|
||||
<span class="special">></span>
|
||||
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special"><</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">>::</span><span class="identifier">type</span>
|
||||
<span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">val</span><span class="special">);</span>
|
||||
</pre>
|
||||
<p>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.description"></a><h6>
|
||||
<a name="id3243740"></a>
|
||||
<a class="link" href="upper_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.description">Description</a>
|
||||
</h6>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">upper_bound</span></code>
|
||||
that return an iterator, returns the first iterator in the range <code class="computeroutput"><span class="identifier">rng</span></code> such that: without predicate -
|
||||
<code class="computeroutput"><span class="identifier">val</span> <span class="special"><</span>
|
||||
<span class="special">*</span><span class="identifier">i</span></code>
|
||||
is <code class="computeroutput"><span class="keyword">true</span></code>, with predicate
|
||||
- <code class="computeroutput"><span class="identifier">pred</span><span class="special">(</span><span class="identifier">val</span><span class="special">,</span> <span class="special">*</span><span class="identifier">i</span><span class="special">)</span></code> is <code class="computeroutput"><span class="keyword">true</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">end</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
|
||||
is returned if no such iterator exists.
|
||||
</p>
|
||||
<p>
|
||||
The versions of <code class="computeroutput"><span class="identifier">upper_bound</span></code>
|
||||
that return a <code class="computeroutput"><span class="identifier">range_return</span></code>,
|
||||
defines <code class="computeroutput"><span class="identifier">found</span></code> in the
|
||||
same manner as the returned iterator described above.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.definition"></a><h6>
|
||||
<a name="id3243945"></a>
|
||||
<a class="link" href="upper_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.definition">Definition</a>
|
||||
</h6>
|
||||
<p>
|
||||
Defined in the header file <code class="computeroutput"><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">algorithm</span><span class="special">/</span><span class="identifier">upper_bound</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.requirements"></a><h6>
|
||||
<a name="id3244020"></a>
|
||||
<a class="link" href="upper_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.requirements">Requirements</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">Value</span></code> is a model of
|
||||
the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
The ordering of objects of type <code class="computeroutput"><span class="identifier">Value</span></code>
|
||||
is a <span class="bold"><strong><span class="emphasis"><em>strict weak ordering</em></span></strong></span>,
|
||||
as defined in the <code class="computeroutput"><span class="identifier">LessThanComparableConcept</span></code>
|
||||
requirements.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
</ul></div>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code> is a model
|
||||
of the <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
|
||||
Concept.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">BinaryPredicate</span></code> is
|
||||
a model of the <code class="computeroutput"><span class="identifier">StrictWeakOrderingConcept</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is the same type as <code class="computeroutput"><span class="identifier">Value</span></code>.
|
||||
</li>
|
||||
<li class="listitem">
|
||||
<code class="computeroutput"><span class="identifier">ForwardRange</span></code>'s value
|
||||
type is convertible to both of <code class="computeroutput"><span class="identifier">BinaryPredicate</span></code>'s
|
||||
argument types.
|
||||
</li>
|
||||
</ul></div>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.precondition_"></a><h6>
|
||||
<a name="id3244279"></a>
|
||||
<a class="link" href="upper_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.precondition_">Precondition:</a>
|
||||
</h6>
|
||||
<p>
|
||||
<span class="bold"><strong>For the non-predicate versions:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> is sorted in ascending
|
||||
order according to <code class="computeroutput"><span class="keyword">operator</span><span class="special"><</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="bold"><strong>For the predicate versions:</strong></span>
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="identifier">rng</span></code> is sorted in ascending
|
||||
order according to <code class="computeroutput"><span class="identifier">pred</span></code>.
|
||||
</p>
|
||||
<a name="range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.complexity"></a><h6>
|
||||
<a name="id3244377"></a>
|
||||
<a class="link" href="upper_bound.html#range.reference.algorithms.range_algorithm_non_mutating_algorithms.upper_bound.complexity">Complexity</a>
|
||||
</h6>
|
||||
<p>
|
||||
For ranges that model the <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
|
||||
Access Range</a> Concept the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span> <span class="identifier">N</span><span class="special">)</span></code>,
|
||||
where <code class="computeroutput"><span class="identifier">N</span></code> is <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>.
|
||||
For all other range types the complexity is <code class="computeroutput"><span class="identifier">O</span><span class="special">(</span><span class="identifier">N</span><span class="special">)</span></code>.
|
||||
</p>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="search.html"><img src="../../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../range_algorithm_non_mutating_algorithms.html"><img src="../../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../set_algorithms.html"><img src="../../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,54 @@
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
|
||||
<title>Numeric algorithms</title>
|
||||
<link rel="stylesheet" href="../../../../../../../doc/html/boostbook.css" type="text/css">
|
||||
<meta name="generator" content="DocBook XSL Stylesheets V1.75.1">
|
||||
<link rel="home" href="../../../index.html" title="Chapter 1. Range 2.0">
|
||||
<link rel="up" href="../algorithms.html" title="Range Algorithm">
|
||||
<link rel="prev" href="range_algorithm_new_algorithms/remove_erase_if.html" title="remove_erase_if">
|
||||
<link rel="next" href="range_numeric/accumulate.html" title="accumulate">
|
||||
</head>
|
||||
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
|
||||
<table cellpadding="2" width="100%"><tr>
|
||||
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../boost.png"></td>
|
||||
<td align="center"><a href="../../../../../../../index.html">Home</a></td>
|
||||
<td align="center"><a href="../../../../../../libraries.htm">Libraries</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
|
||||
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
|
||||
<td align="center"><a href="../../../../../../../more/index.htm">More</a></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="range_algorithm_new_algorithms/remove_erase_if.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_numeric/accumulate.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
<div class="section" title="Numeric algorithms">
|
||||
<div class="titlepage"><div><div><h4 class="title">
|
||||
<a name="range.reference.algorithms.range_numeric"></a><a class="link" href="range_numeric.html" title="Numeric algorithms"> Numeric
|
||||
algorithms</a>
|
||||
</h4></div></div></div>
|
||||
<div class="toc"><dl>
|
||||
<dt><span class="section"><a href="range_numeric/accumulate.html">
|
||||
accumulate</a></span></dt>
|
||||
<dt><span class="section"><a href="range_numeric/adjacent_difference.html">
|
||||
adjacent_difference</a></span></dt>
|
||||
<dt><span class="section"><a href="range_numeric/inner_product.html">
|
||||
inner_product</a></span></dt>
|
||||
<dt><span class="section"><a href="range_numeric/partial_sum.html">
|
||||
partial_sum</a></span></dt>
|
||||
</dl></div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"></td>
|
||||
<td align="right"><div class="copyright-footer">Copyright © 2003 -2010 Thorsten Ottosen, Neil Groves<p>
|
||||
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
||||
file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
|
||||
</p>
|
||||
</div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
<div class="spirit-nav">
|
||||
<a accesskey="p" href="range_algorithm_new_algorithms/remove_erase_if.html"><img src="../../../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="range_numeric/accumulate.html"><img src="../../../../../../../doc/html/images/next.png" alt="Next"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user