Compare commits

...

394 Commits

Author SHA1 Message Date
f0e109312c Merge pull request #144 from tobias-loew/fix-mfc
fixed compilation error in mfc.hpp with VS2022, MSVC 14.3
2023-08-28 08:41:52 +01:00
3920ef2e7a Merge pull request #146 from BenFrantzDale/issue-145
Fix for docs: https://github.com/boostorg/range/issues/145
2023-04-21 22:18:11 +01:00
41bff33b2c Fix for docs: https://github.com/boostorg/range/issues/145 2023-04-21 14:38:08 -04:00
b2e4d5ad4b Merge branch 'boostorg:develop' into fix-mfc 2023-04-12 09:07:19 +02:00
d52236c0b8 fixed compilation error in mfc.hpp with VS2022, MSVC 14.3
`const CObList` and `const CPtrList` still return a value from `GetHead`, `GetTail` and `GetAt`. MSVC 14.2 didn't complain about it, but 14.3 does so.

```
1>D:\boost\range\detail\microsoft.hpp(626,33): error C2440: 'return': cannot convert from 'const void *' to 'const void *&'
1>D:\boost\range\detail\microsoft.hpp(624,1): message : while compiling class template member function 'const void *&boost::range_detail_microsoft::list_iterator<const X,const void *,boost::use_default,boost::use_default>::dereference(void) const'
1>        with
1>        [
1>            X=CPtrList
1>        ]
1>D:\boost\iterator\iterator_facade.hpp(631,11): message : see reference to function template instantiation 'const void *&boost::range_detail_microsoft::list_iterator<const X,const void *,boost::use_default,boost::use_default>::dereference(void) const' being compiled
1>        with
1>        [
1>            X=CPtrList
1>        ]
1>D:\boost\range\mfc.hpp(881,1): message : see reference to class template instantiation 'boost::range_detail_microsoft::list_iterator<const X,const void *,boost::use_default,boost::use_default>' being compiled
1>        with
1>        [
1>            X=CPtrList
1>        ]

```
2023-04-12 09:04:41 +02:00
014c48f1b1 Merge pull request #137 from fanquake/patch-1
refactor: use core/noncopyable over boost/noncopyable
2022-08-24 17:55:01 +01:00
9c783ecbef refactor: use core/noncopyable over boost/noncopyable
The later is deprecated:
```cpp
// The header file at this path is deprecated;
// use boost/core/noncopyable.hpp instead.

#include <boost/core/noncopyable.hpp>
```
2022-08-23 16:00:08 +01:00
d6e0a32f2e Merge pull request #131 from BenjaminRodenberg/patch-1
Fix typo
2022-01-23 09:01:28 -05:00
95095cf4bb Fix typo 2022-01-23 12:53:11 +01:00
88c6199aed Merge branch 'master' into develop 2021-05-29 01:02:17 +03:00
fd40a25fea Add CMakeLists.txt 2021-03-18 17:28:05 +02:00
da69f60d3e Merge pull request #120 from eldiener/develop
[skip ci] Add "cxxstd" json field
2021-01-21 09:13:11 +00:00
6fc6e92adc [skip ci] Add "cxxstd" json field. The "cxxstd" json field is being added to each Boost library's meta json information for libraries in order to specify the minumum C++ standard compilation level. The value of this field matches one of the values for 'cxxstd' in Boost.Build. The purpose of doing this is to provide information for the Boost website documentation for each library which will specify the minimum C++ standard compilation that an end-user must employ in order to use the particular library. This will aid end-users who want to know if they can successfully use a Boost library based on their C++ compiler's compilation level, without having to search the library's documentation to find this out. 2021-01-21 03:20:56 -05:00
e13030df17 Merge pull request #117 from Mike-Devel/patch-1
Replace include of outdated boost/cast.hpp header
2020-12-12 09:21:49 -05:00
6776ffa8e8 Replace incldue of outdated boost/cast.hpp header
- Instead include `boost/polymorphic_cast.hpp` directly.
- This replaces the direct dependency of Boost.Range on Boost.NumericConversion with a direct dependency on Boost.Conversion
2020-11-19 14:25:21 +01:00
000b4882aa Merge branch 'develop' 2020-11-03 07:32:17 -05:00
486c74fbeb No longer include the deprecated headers in metafunctions.hpp 2020-09-12 07:48:06 -04:00
f3ff60c3bc Merge branch 'develop' 2020-06-24 19:44:12 +01:00
72e2a4457a Merge pull request #69 from cwecht/unique_erase
Added boost::unique_erase
2020-05-11 19:05:31 +01:00
bb27d50b31 Merge pull request #84 from cekc/patch-1
add std::tuple_element and std::tuple_size specializations for index_value
2020-05-11 19:05:06 +01:00
5572b24a71 Merge pull request #101 from Kojoley/deprecated-headers-compile-time-warning
Add compile-time warning to deprecated headers
2020-05-11 19:04:30 +01:00
b42165a916 Merge pull request #102 from Kojoley/combine-remove-unused-includes-and-code
combine: remove unused includes and code
2020-05-11 19:04:10 +01:00
9a2960f01b Merge pull request #104 from eldiener/develop
Changes for Embarcadero C++ clang-based compilers, targeting Boost 1.74. Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost conf…
2020-05-11 13:00:07 -04:00
4ed7887128 Merge pull request #105 from Lastique/fix_deprecated_headers
Fix usage of deprecated headers
2020-05-11 12:59:37 -04:00
ee1ec1cf57 Fix deprecated usage of boost/bind.hpp.
boost/bind.hpp emits compiler warnings about deprecation of the header
and global _N placeholders. This commit converts usage of this header
to boost/bind/bind.hpp and using namespace boost::placeholders.

Where boost::bind is not actually used, the includes are removed.
2020-05-11 19:26:26 +03:00
3b04f1a65e Remove uses of deprecated header boost/detail/iterator.hpp.
This header was deprecated in favor of <iterator>. It generates compiler
warnings and will be removed in a future release.
2020-05-11 19:13:20 +03:00
45d3aae111 Change __BORLANDC__ to BOOST_BORLANDC, which is defined in Boost config for the Embarcadero non-clang-based compilers. 2020-03-31 16:55:55 -04:00
0e8ad01bf9 combine: remove unused includes and code 2020-03-01 18:03:19 +03:00
c25b0e5069 Add compile-time warning to deprecated headers 2020-02-13 18:29:06 +03:00
994ff83292 Merge pull request #95 from mjendruk/fix-lower-upper-bound-taking-argument-by-value
Make lower_bound and upper_bound take argument by const reference
2020-02-13 09:38:29 +00:00
77e5b868a0 Merge pull request #97 from Kojoley/remove-broken-no_function_template_ordering-support
Remove broken BOOST_NO_FUNCTION_TEMPLATE_ORDERING workaround
2020-02-13 09:37:35 +00:00
474efda11a Merge pull request #94 from mjendruk/fix-any-range-non-reference-references
Fix any_range with non-reference references can cause UB
2020-02-13 09:36:50 +00:00
f1215fbda2 Remove broken BOOST_NO_FUNCTION_TEMPLATE_ORDERING workaround
The workaround seems to be broken for a while, no compilers with that bug are
tested/supported, and there is no complaint whatsoever, not even on trac.
2019-09-28 01:11:01 +03:00
5f04231144 Make lower_bound and upper_bound take argument by const reference 2019-05-31 16:06:46 +02:00
4e0b172a23 Merge branch 'fix-any-range-non-reference-references' of https://github.com/mjendruk/range into fix-any-range-non-reference-references
# Conflicts:
#	include/boost/range/detail/any_iterator_interface.hpp
2019-05-31 10:46:51 +02:00
21a06a93aa Replace decay with remove_reference / remove_const 2019-05-31 10:46:04 +02:00
6b3750f209 Remove unused include 2019-05-08 22:43:09 +02:00
1bf2db29c0 Replace is_copy_constructible and is_abstract with is_convertible 2019-05-08 17:21:45 +02:00
9f03cc44d8 Add is_copy_constructible for >= C++11 2019-05-08 09:58:37 +02:00
911d8a427d Add result_type typedef in tests 2019-05-07 17:17:50 +02:00
3496282d3b Remove usage of initializer_list in test 2019-05-07 17:01:02 +02:00
ce24356018 Replace is_copy_constructible with is_abstract (for pre C++11) 2019-05-07 15:03:56 +02:00
dbb6ef424f Fix any_range with non-reference references can cause UB 2019-05-07 12:06:05 +02:00
77a4dd5124 Merge pull request #91 from glenfe/develop
Implement min_element and max_element and sever algorithm dependency
2019-04-23 09:13:53 +10:00
4ec46acdf5 Implement min_element and max_element and sever algorithm dependency 2019-04-22 18:20:35 -04:00
cecebeea51 Merge pull request #77 from MBoldyrev/MBoldyrev-doc-fix-var-name
fixed variable name in docs
2019-04-02 08:40:20 -04:00
802fda6701 Merge pull request #85 from Eelis/patch-1
Fix function name in remove_if documentation
2019-04-02 08:39:11 -04:00
4ad147a220 Fix function name in remove_if documentation 2019-03-08 17:59:18 +01:00
221ae46c2b add std::tuple_element and std::tuple_size specializations for index_value
To make index_value work with structured bindings
https://wandbox.org/permlink/gsveiKdAamnEbOKM
2019-02-25 18:35:53 +03:00
eced0cfac8 fixed variable name in docs 2018-10-14 19:24:57 +03:00
9f94c8703b Merge branch 'develop' 2018-10-01 15:42:04 +03:00
023f45be01 Remove constexpr from begin/end on g++ 4.6 as it doesn't like it 2018-09-30 01:34:50 +03:00
364f755d99 Use boost::declval, as g++ 4.4 has decltype but no std::declval 2018-09-30 01:11:12 +03:00
af9f65e06e Add g++-4.4, g++-4.6 to Travis 2018-09-29 17:34:43 +03:00
b91cb90dca Make min/max engine members constexpr in random_shuffle.hpp 2018-09-24 02:26:50 +03:00
7efe3c68f6 Fix msvc-10.0, msvc-11.0 failures in ref_unwrapped tests 2018-09-24 02:21:55 +03:00
357bf3b980 Merge pull request #75 from morinmorin/add_adl_barrier_to_distance
Add ADL guard namespace for boost::distance(rng)
2018-09-23 20:08:55 +03:00
9192996a93 Add ADL guard namespace for boost::distance(rng). 2018-09-23 21:45:30 +09:00
4cfd4d8287 Merge branch 'develop' 2018-07-12 16:59:32 +03:00
70d1727ed3 Merge pull request #71 from boostorg/pr/concepts-msvc-permissive-2
Change RandomAccessIteratorConcept to BidirectionalIteratorConcept to…
2018-07-10 12:02:41 +01:00
406226eccd Change RandomAccessIteratorConcept to BidirectionalIteratorConcept to work around a MSVC bug 2018-07-10 13:12:55 +03:00
05532829bd Merge pull request #70 from boostorg/pr/concepts-msvc-permissive-
Remove ill-formed MSVC-specific code that doesn't compile with /permi…
2018-07-09 20:19:38 +01:00
c24661a636 Remove ill-formed MSVC-specific code that doesn't compile with /permissive- 2018-07-09 20:41:33 +03:00
11dd528eb0 added unique_erase 2018-04-24 16:29:31 +02:00
314b5d6b3c Merge branch 'develop' 2018-04-18 11:04:16 +01:00
4dd5ad0f64 Merge pull request #65 from VeroSoftware/develop
Fix Error C4596: 'difference_type': illegal qualified name in member declaration
2018-04-06 14:58:20 +01:00
f1906e914e use _MSC_VER to guard fix for C4596 when compiling with MSVC141 2018-02-28 13:43:34 +00:00
795046f8fc Fix Error C4596: 'difference_type': illegal qualified name in member declaration when compiling with VS 2017 Professional 15.5.6 2018-02-28 10:55:24 +00:00
2aaa802e6a Merge pull request #64 from boostorg/revert-54-push_back_move_support
Revert "push_back: added support for not-copyable but moveable value-types li…"
2018-01-03 14:39:46 +00:00
5b2500872d Revert "push_back: added support for not-copyable but moveable value-types li…" 2018-01-03 14:36:50 +00:00
b1d5d23514 Add quick test target (for CI) 2017-12-18 21:14:16 +02:00
aaebfa5b20 Include boost/next_prior.hpp where needed
A recent change to boost/utility.hpp removed the include of this header,
so now it's needed for boost::prior and boost::next.

b74f49f1e5
2017-12-18 21:14:06 +02:00
95a62a3b3a Split Travis jobs to avoid timeout 2017-12-03 15:16:45 +02:00
67929cd7df Add .travis.yml 2017-12-03 15:16:25 +02:00
5408f220dd Split Travis jobs to avoid timeout 2017-12-03 03:16:30 +02:00
937a411c3f Add .travis.yml 2017-12-02 19:17:02 +02:00
1dac6a796e Add quick test target (for CI) 2017-12-02 19:10:56 +02:00
1234c59a39 Merge pull request #61 from danieljames/develop
Include boost/next_prior.hpp where needed
2017-12-02 16:00:35 +02:00
e0d2e492a1 Include boost/next_prior.hpp where needed
A recent change to boost/utility.hpp removed the include of this header,
so now it's needed for boost::prior and boost::next.

b74f49f1e5
2017-12-02 10:40:16 +00:00
619c074146 Merge pull request #58 from boostorg/revert-45-develop
Revert "Update irange.hpp"
2017-11-15 23:22:00 +00:00
4614777aaf Revert "Update irange.hpp" 2017-11-15 23:21:32 +00:00
83a352fa58 Merge pull request #45 from mateuszlewko/develop
Update irange.hpp
2017-11-15 19:52:41 +00:00
0e0d77cfab Merge pull request #56 from tonyelewis/add_const_to_adj_filt_rng
Add missing const to adjacent_filtered_range
2017-11-15 19:51:18 +00:00
d1f36fba8d Merge pull request #54 from cwecht/push_back_move_support
push_back: added support for not-copyable but moveable value-types li…
2017-11-15 19:51:00 +00:00
4283443532 Merge pull request #57 from jeanphilippeD/fix_transformed_test
Fix transformed test compile error on GCC 5.4
2017-11-15 19:49:05 +00:00
3771624560 Merge pull request #43 from timblechmann/topic/unary-irange
irange: introduce one-parameter variant of irange
2017-11-15 19:48:19 +00:00
4a729678fd Fix transformed test compile error on GCC 5.4
The function object 'lambda' did not provide result_type like the other
function objects did.

The test now compile and pass using'b2'
2017-09-24 14:13:42 +01:00
dfa3697764 Add missing const to adjacent_filtered_range 2017-09-14 20:07:07 +01:00
efdd98332b Qualify boost::search in test/algorithm to avoid ambiguity with C++17's std::search 2017-09-10 03:03:16 +03:00
8b98b696ff Qualify boost::search in test/algorithm to avoid ambiguity with C++17's std::search 2017-09-10 03:01:13 +03:00
97951d2a8b Fix test compilation
boost::detail::iterator_traits was used without including the necessary header
file. It's deprecated anyway and only maps to std::iterator_traits. Also,
utility was missing for std::pair.
2017-09-10 02:21:53 +03:00
efa2dc71f9 Fix compilation
boost::detail::iterator_traits was used without including the necessary header file. It's deprecated anyway and only maps to std::iterator_traits.
2017-09-09 23:37:16 +03:00
d99628981d push_back: added support for not-copyable but moveable value-types like e.g. unique_ptr 2017-09-01 17:53:46 +02:00
e65434eb4f Merge pull request #53 from morinmorin/fix_c++03_breakage
Fix breakage in replaced adaptor for C++03
2017-07-12 14:18:05 +01:00
93513a3801 Make rng | replaced_if consistent with rng | replaced 2017-07-12 22:08:22 +09:00
93eb91e63e Fix breakage in replaced adaptor for C++03 2017-07-12 22:06:58 +09:00
f3a4246bd9 Merge pull request #48 from t-wynants/fix-ticket-12754-sfinae-friendly-overload
Ticket 12754 - sfinea friendly boost::range_details::replace_holder overloads
2017-06-30 12:45:34 +01:00
796080bbb8 Merge pull request #46 from jeanphilippeD/lambda_copy_transform_it
Allow iterator copy for lambda in transformed and filtered
2017-06-30 12:43:38 +01:00
370f1a4cd2 Merge pull request #51 from DanielaE/feature/replace-removed-c++98-stuff
Conditionally replace deprecated/removed C++98 function adapters and …
2017-06-30 12:42:59 +01:00
7d564572e2 Merge pull request #50 from orgads/patch-1
Fix broken link in overview
2017-06-30 12:42:41 +01:00
9afc3bcbe2 Merge pull request #52 from morinmorin/use_boost_distance_from_iterator_lib
Make boost::distance traversal-category-aware (and constexpr in C++14)
2017-06-30 12:40:18 +01:00
69409ed63a Make boost::distance traversal-category-aware (and constexpr in C++14) 2017-06-30 20:02:53 +09:00
23e5801e2a Conditionally replace deprecated/removed C++98 function adapters and std::random_shuffle by equivalents.
Signed-off-by: Daniela Engert <dani@ngrt.de>
2017-05-05 14:15:11 +02:00
e476e1900a Fix broken link in overview 2017-05-03 10:18:25 +03:00
452b1bb7e7 Merge pull request #44 from apolukhin/develop
Added BOOST_CONSTEXPR for begin()/end()
2017-04-17 14:39:19 +01:00
7b89c747d6 Ticket 12754 - operator| overload for boost::range_details::replace_holder is not SFINEA friendly
include\boost\range\adaptor\replaced.hpp

Make sure that the overload resolution doesn't choke on the value type factory when its considers the overload
2017-01-12 17:45:31 +01:00
deb3ae9800 Merge branch 'master' into develop 2016-11-26 22:45:08 -08:00
56d470635d Qualify call to boost::size to avoid ambiguity with std::size 2016-11-26 22:44:31 -08:00
5c70a54597 Merge branch 'master' into develop 2016-11-23 14:56:09 -08:00
f829c55c72 Merge pull request #47 from boostorg/fix-boost-size_type
Don't assume that because type `T` is a range that `const T` is also a range.
2016-11-23 14:54:26 -08:00
910fc7bf82 Qualify call to boost::size to avoid ambiguity with std::size 2016-11-23 14:47:42 -08:00
67c18ac1f1 Merge remote-tracking branch 'origin/master' into develop 2016-11-18 21:28:24 -08:00
5787c56994 Merge pull request #47 from boostorg/fix-boost-size_type
Don't assume that because type `T` is a range that `const T` is also a range.
2016-11-18 12:06:32 -08:00
9e5680b590 Don't assume that because type T is a range that const T is also a range.
size_type<const T> erroneously dispatches to detail::size_type_<T>. That breaks for types that have non-const begin/end but that don't have const begin/end. The range-v3 library has such types.
2016-11-18 11:50:32 -08:00
1b4f8100ef Allow iterator copy for lambda in transformed and filtered
Lambda has no default constructor nor a copy or move assignment.

range\test\adaptors.cpp is checking that produced ranges are copiable,
but it is not doing so the for lambda, or lambda like objects.

default_constructible_unary_fn uses an optional for default
construction.
I extended it to use its emplace facility to copy assign non copy
assignable types.
(see boost::optional 'Type Requierment':  'If T is not MoveAssignable,
it is still possible to reset the value of optional<T> using function
emplace():')
2016-10-23 23:27:31 +01:00
7567dce0c1 Add, and update, documentation build targets. 2016-10-10 11:39:52 -05:00
e48b9c38e7 Add, and update, documentation build targets. 2016-10-07 23:07:36 -05:00
283b8beddc Update irange.hpp
Added: irange(int last), irange(int first, int last)
2016-04-09 19:32:22 +02:00
4ce15f9b52 Added BOOST_CONSTEXPR for begin()/end() 2016-01-24 22:51:19 +03:00
bb43887430 irange: introduce one-parameter variant of irange
this simplifies the use of boost::irange, as boost::irange( 0, foo );
may compile or not depending on the platform-specific integer type of
foo, requiring an explicit cast of 0 to decltype(foo).
2016-01-17 11:40:55 +01:00
5a37aa4e98 Merge pull request #41 from robin-eckert/adaptor_ref_unwrapped
add a new range adaptor boost::adaptors::ref_unwrapped
2016-01-04 16:38:36 +00:00
0e931f4a80 Merge pull request #33 from tobias-loew/master
Ticket #10397 - compilation error with mfc-iteratior-support: ambiguous symbol
2016-01-04 16:37:18 +00:00
5196baa1b0 Merge pull request #42 from rydotyosh/patch-1
[range] fixed minor typo in docs
2016-01-04 16:36:58 +00:00
1947daf1b5 Merge pull request #39 from MarcelRaad/fix_iterator_pair_test
Fix test compilation
2016-01-04 16:36:42 +00:00
7ca999c662 [range] fixed minor typo in docs 2015-11-14 15:41:48 +09:00
e7ebe14707 Merge pull request #40 from treh/treh-patch-1
qualify boost::range_[const|mutable]_iterator
2015-11-05 11:42:43 +00:00
3225aaf82b add a new range adaptor boost::adaptors::ref_unwrapped
The new adaptor is like boost::adaptors::indirected, but for
std::reference_wrapper values (instead of pointer). It calls
.get() on every value and returns the result. It is useful for
range-based iteration of ranges of std::reference_wrapper (or
related) types.
2015-11-04 19:12:26 +01:00
262c0f96b3 qualify boost::range_[const|mutable]_iterator
otherwise boost::range_detail::range_[const|mutable]_iterator gets accidentily called
2015-11-04 09:58:15 +01:00
1a3aeeb336 Fix test compilation
boost::detail::iterator_traits was used without including the necessary header
file. It's deprecated anyway and only maps to std::iterator_traits. Also,
utility was missing for std::pair.
2015-09-22 00:51:41 +02:00
78a8f5bf3d Merge pull request #38 from MarcelRaad/patch-1
Fix compilation
2015-09-18 09:08:01 +01:00
9bf860fd30 Fix compilation
boost::detail::iterator_traits was used without including the necessary header file. It's deprecated anyway and only maps to std::iterator_traits.
2015-09-18 09:54:08 +02:00
64c83341ab Merge pull request #37 from mclow/develop
Remove use of deprecated macros
2015-09-13 21:52:09 +01:00
6241dc62aa Remove use of deprecated macros 2015-09-11 15:16:24 -07:00
f83381d938 Merge pull request #36 from morinmorin/fix/ticket11563
Fix ticket 11563 (boost::range behavior changed from 1.55 to 1.56)
2015-09-07 07:45:08 +01:00
926318105e Merge pull request #35 from morinmorin/fix/credit_in_trac5014
Fix credit in ticket 5014 testcase
2015-09-07 07:44:51 +01:00
140866b402 Merge pull request #34 from morinmorin/fix/ticket11528
Fix ticket 11528 (MSVS 2015 + boost::range: STL and Boost iterators)
2015-09-07 07:44:35 +01:00
490ba3fdcd Reapply r85400 (this time use Iterator1 instead of Iterator2 as per r85691) and enhance the testcase; fixes ticket 11563. 2015-08-21 21:40:25 +09:00
e4f456d438 Fix credit in ticket 5014 testcase 2015-08-20 20:36:19 +09:00
adcb071dc6 Replace std::min_element/max_element with boost::first_min_element/first_max_element to accept a range that models ForwardRange but its underlying iterator models only InputIterator; fixes ticket 11528. 2015-08-20 20:03:08 +09:00
4f66482414 Ticket #10397 - compilation error with mfc-iteratior-support: ambiguous symbol
fixed compilation error for mfc-iteration-support

changed
boost::range_detail::range_const_iterator
to
boost::range_detail::range_const_iterator_helper

to address compilation error when using mfc-iteration-support
2015-08-12 15:32:31 +02:00
7fad9837fb Merge pull request #32 from mclow/develop
Add char16_t and char32_t to the list of literal string types. Fixes …
2015-05-13 12:23:39 +01:00
11dbb1cb5a Add char16_t and char32_t to the list of literal string types. Fixes bug 11265 in Boost.StringAlgo's join. 2015-05-12 21:26:05 -06:00
e961e66909 Merge pull request #26 from Yasami/develop
fix missing return statement
2015-04-27 19:51:18 +01:00
8847fd63cb Merge pull request #30 from nekko1119/pr-fix-doc
Fix parameters in replaced adaptor document
2015-04-27 19:50:57 +01:00
62941f740d Merge pull request #31 from eldiener/develop
Use operator || rather than boost::mpl::or_ for constant boolean exprtession.
2015-04-27 19:49:28 +01:00
0c930a3697 Fix syntax error. 2015-04-27 14:06:59 -04:00
09084d6355 Use || operator instead of boost::mpl::or_ for constant boolean value since current Boost compilers all support operator use. 2015-04-27 13:18:48 -04:00
9ca1622dd0 Fix parameters in replaced adaptor document 2015-04-22 02:48:05 +09:00
7669f52547 Merge branch 'develop' 2015-04-21 08:22:15 +01:00
c6c4a8f3c1 Merge pull request #29 from ericniebler/develop
fix build break on msvc-8.0
2015-04-19 13:28:52 -07:00
3d5f3611ba fix build break on msvc-8.0 2015-04-18 11:42:38 -07:00
8c1180f7f2 Merge pull request #27 from eldiener/develop
Remove dependency on type traits ice_xxx.hpp headers, which are deprecat...
2015-04-14 09:27:05 +01:00
8ea11f9281 Merge pull request #28 from ericniebler/develop
make range_iterator, range_difference, and range_size SFINAE-friendly, r...
2015-04-14 09:26:35 +01:00
811b27141a make range_iterator, range_difference, and range_size SFINAE-friendly, refs #11187 2015-04-14 00:57:54 -07:00
a53bd134b2 Remove dependency on type traits ice_xxx.hpp headers, which are deprecated. 2015-04-02 01:54:45 -04:00
0b28fd043f Fix for MSVC subrange iterator conversions. 2015-02-09 01:21:16 +00:00
474c62ab16 fix missing return statement 2015-02-04 15:52:15 +09:00
de206a64db ticket10514 subrange unit test added. 2015-02-02 20:26:31 +00:00
435ca994bf Ticket 10989 - strided adapter category. 2015-02-02 20:17:04 +00:00
4a80ccd50d Ticket 10988 - Filtered adaptor should only require SinglePassRange. 2015-02-01 19:05:58 +00:00
6f11252633 Ticket 10336 - unit test added. 2015-01-31 14:50:58 +00:00
2356783e17 Merge branch 'develop'
Conflicts:
	include/boost/range/detail/any_iterator.hpp
	test/iterator_range.cpp
2015-01-31 13:38:08 +00:00
688d1bc418 Update inclusion of polymorphic_cast.hpp to cat.hpp 2015-01-31 13:31:33 +00:00
dcbe4f9365 Merge pull request #21 from Lastique/patch-1
Use public interface of Boost.Iterator
2015-01-25 19:15:31 +00:00
9b3a21b5e3 Merge pull request #25 from levinmk/master
fix ticket #10754
2015-01-25 19:15:05 +00:00
e362bb1855 Merge pull request #20 from danieljames/metadata
Create metadata file.
2015-01-25 20:30:52 +02:00
1965b797d8 fix ticket #10754
as described in https://svn.boost.org/trac/boost/ticket/10754, postfix_increment_proxy and writable_postfix_increment_proxy were moved to boost::iterators::detail namespace
2014-12-12 16:43:32 -06:00
4f3bdbe4d3 Merge pull request #24 from steveire/remove-algorithm-dep
Remove algorithm dep
2014-09-25 01:12:32 +01:00
8bb3a85f68 Use local sfinae typedefs for yes_type and no_type.
Remove dependency on Boost.Algorithm library.
2014-09-10 15:37:48 +02:00
0e9a9e613b Rely on the 'typename' keyword from the compiler.
Remove trailing whitespace from modified lines.

 git grep -l BOOST_STRING_TYPENAME | xargs sed -i 's|BOOST_STRING_TYPENAME *$|typename|'
 git grep -l BOOST_STRING_TYPENAME | xargs sed -i 's|BOOST_STRING_TYPENAME \(.*\) +$|typename \1|'
 git grep -l BOOST_STRING_TYPENAME | xargs sed -i 's|BOOST_STRING_TYPENAME|typename|'

Remove include of header from Boost.Algorithm library providing the define.
2014-09-10 15:37:45 +02:00
18e5bfd037 Merge pull request #22 from insideoutclub/develop
Update algorithms.qbk
2014-09-05 13:47:21 -04:00
51b8115fc1 Update algorithms.qbk
Fixed the spelling of "old-fashioned".
2014-09-05 10:34:21 -07:00
4617c43b5e Use public interface of Boost.Iterator 2014-08-30 16:04:46 +04:00
a58e59ec67 Add metadata file. 2014-08-18 15:09:55 +01:00
470a28ecb6 replace =default in test to fix iterator_range.cpp unit test regression with older compilers. 2014-08-15 12:26:30 +01:00
1e509e6749 Merge pull request #19 from ericniebler/develop
Possible fix for iterator_range SFINAE bug
2014-08-10 17:07:10 +01:00
7d13f63d5d avoid SFINAE problem in iterator_range constructor 2014-08-09 14:48:57 -07:00
d6bce30c4f Merge remote-tracking branch 'origin/develop' into develop 2014-08-09 12:30:26 -07:00
b0b08e0039 Add upgrade documentation about pop_front() and pop_back() being renamed. 2014-08-04 22:06:25 +01:00
c865de5aa6 Hotfix to add back advance_begin and advance_end. 2014-08-04 22:06:11 +01:00
dc0a6b6340 Add upgrade documentation about pop_front() and pop_back() being renamed. 2014-08-04 19:32:37 +01:00
7fb879a283 Hotfix to add back advance_begin and advance_end. 2014-08-04 17:53:14 +01:00
af2f17ccc5 Merge pull request #18 from ericniebler/master
attempted fix for iterator_range relational operators bug
2014-07-30 09:11:20 -07:00
4716c1efec Merge pull request #16 from ericniebler/develop
attempted fix for iterator_range relational operators bug
2014-07-30 07:53:31 -07:00
9d8034d541 Merge remote-tracking branch 'origin/develop' into develop 2014-07-29 19:35:26 -07:00
48dfb68045 Merge pull request #17 from ericniebler/iterators-namespace
accomodate new boost::iterators namespace.
2014-07-29 18:21:34 -07:00
1617a513d2 accomodate new boost::iterators namespace. See boostorg/iterator@dc96d371fa 2014-07-29 18:18:02 -07:00
c2a7ac4197 attempted fix for iterator_range relational operators bug 2014-07-29 17:53:27 -07:00
1e25d862bc Merge branch 'master' into develop 2014-07-22 09:37:16 -07:00
8a8b511109 remove executable bit on range.hpp 2014-07-22 09:36:52 -07:00
1fd0ded6b1 merge back from master 2014-07-22 09:36:01 -07:00
fbf91ce2da add missing inline keyword 2014-07-22 09:21:24 -07:00
edc7bb5fd9 add missing inline keyword 2014-07-22 09:19:52 -07:00
0ffe40272a Merge branch 'develop' - to incorporate the MSVC workaround for range_iterator by Eric Niebler. 2014-07-15 10:32:55 +01:00
7896e79373 Merge branch 'ericniebler-develop' into develop 2014-07-15 10:06:19 +01:00
d6dd1ad193 work-around for msvc limitation that causes has_iterator<> to fail for structs named iterator. Only applies to msvc-10.0 and earlier. 2014-07-14 00:03:45 -07:00
cf6fabe950 Merge branch 'develop' - contains emergency fix to traversal tags to fix the accumulator tests. 2014-06-19 10:33:51 +01:00
3b9aabb925 Merge pull request #13 from ericniebler/iterator-range-traversal
handle composite iterator traversals in iterator_range
2014-06-19 10:31:15 +01:00
1eecd2c2f6 handle composite iterator traversals in iterator_range 2014-06-19 00:43:52 -07:00
e33c501c05 Merge branch 'develop' - small fixes in addition to a more major fix for adaptors
producing iterators that did not have default constructors.
2014-06-16 22:51:08 +01:00
3ecf600434 Fixed range adaptors that were creating underlying iterators that were not default constructible. 2014-06-16 14:49:25 +01:00
31ace63a0c Merge pull request #12 from Flast/pr/file-mode
More remove execute attribute from files.
2014-06-16 14:17:48 +01:00
61e02039dd More remove execute attribute from files.
rel. to:
  e0e6fefb1e

Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-06-16 20:28:02 +09:00
fc172fc509 fixed and resolved missing coverage in the copy_backward unit test. 2014-06-16 11:45:41 +01:00
a0dad84a13 Merge pull request #10 from apolukhin/develop
Replaced deprecated cast.hpp with polymorphic_cast.hpp. Droped dependenc...
2014-06-16 10:40:18 +01:00
264017e2a9 more robust implementation for BOOST_RANGE_EXTRACT_OPTIONAL_TYPE 2014-06-16 00:00:09 -07:00
12d4af20dd Merge branch 'develop' - improved indexed adaptor 2014-06-09 12:06:20 +01:00
5ba77001dd Replaced deprecated cast.hpp with polymorphic_cast.hpp. Droped dependency to the Numeric library 2014-06-09 13:21:24 +04:00
5ce6dc7814 change the return type from the indexed adaptor so that the index is available from the range element. 2014-06-09 02:12:00 +01:00
749b1c5456 Merge branch 'develop' to incorporate trac 10098 2014-06-08 23:54:18 +01:00
344f578934 trac_10098 iterator_range sign warning. 2014-06-07 17:19:35 +01:00
6ee61a6578 Merge branch 'develop' - to include the range_fwd.hpp header file. 2014-06-07 17:07:15 +01:00
fe1a592e46 add a range_fwd.hpp header file for the main classes/structs and the extension points. 2014-06-05 19:10:19 +01:00
c555a1228f Merge branch 'develop' to incorporate the formatted adaptor 2014-06-05 14:30:52 +01:00
4c8164a9aa bring formatted_range into the boost::range namespace. 2014-06-05 01:04:21 +01:00
5918e7e63e changed the separated function to become the new formatted adaptor. 2014-06-05 01:00:13 +01:00
e0e6fefb1e remove crazy execute file attribute from header files. 2014-06-04 18:56:49 +01:00
36bb8a82fb Merge branch 'develop' to incorporate fixes from trac tickets. 2014-06-04 18:37:36 +01:00
e43796c42c allow clang to use Range Concepts despite reporting GCC 4.2. 2014-06-04 13:15:04 +01:00
60025220f5 add Enabler template argument to range_iterator, range_const_iterator and range_mutable_iterator extension points. 2014-06-04 12:23:40 +01:00
698a083e65 Merge pull request #9 from romanek-adam/patch-1
[doc] Fix typo in the name of forward traversal tag.
2014-05-07 11:42:43 -04:00
ac99249c89 Update any_range.qbk
Fix typo in the name of forward traversal tag.
2014-05-07 09:39:00 +02:00
4ec54072d3 change to fix MSVC 8 unit test failure due to uint32_t. 2014-05-07 01:46:38 +01:00
ec3c98bc25 any_iterator now compiles without RTTI. 2014-05-07 00:13:09 +01:00
5f2560f753 Ticket 9851 - adaptors should perform concept check assertions. 2014-05-06 23:37:21 +01:00
d7fde2736c Merge pull request #8 from Flast/pr/doc/metafun
Fix return type in metafunction documentation
2014-05-05 12:29:54 -04:00
4cdf15a0f6 Fix return type in metafunction document
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-05-06 01:12:53 +09:00
3b3e590e73 Merge pull request #7 from Flast/pr/doc/fix/typo
Fix documentation typo
2014-05-02 11:29:42 -04:00
117bcd83d6 Fix document typo
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-05-02 02:12:06 +09:00
3419a28a9f Merge pull request #6 from insideoutclub/develop
Make BinaryOperator version of transform() stop when end of either range is reached (refs #9812)
2014-04-28 12:51:07 -04:00
e3f605a02f Update transform.hpp 2014-04-28 08:06:04 -07:00
9e5144bab9 Merge pull request #4 from Flast/pr/config/macro
Fix using deprecated macro
2014-04-26 00:33:28 -04:00
35595211b6 Fix using deprecated macro
Signed-off-by: Kohei Takahashi <flast@flast.jp>
2014-04-21 01:14:09 +09:00
449e78e0b0 test find works as a contains function. 2014-04-08 16:45:34 +01:00
fa629a53bd Merge branch 'develop' 2014-03-12 03:43:36 +00:00
311225e0a1 remove rvalue reference changes to transformed adaptor. 2014-03-10 20:08:36 +00:00
edb81e828b fully quality boost::enable_if since msvc namespaces dont work. 2014-03-10 19:01:24 +00:00
083df800b5 Merge branch 'develop' 2014-03-10 11:10:25 +00:00
ed0febc902 ticket 6172 - added unit test to ensure transformed works with bind. 2014-03-09 21:51:07 +00:00
a6bd3e6e44 added the boost::range::separated function for range output streaming. 2014-03-09 21:09:00 +00:00
70256bd8b0 ticket 4572 - make_iterator_range_n 2014-03-09 19:27:28 +00:00
f1de74a6ac ticket 9438 for qualifying calls to ignore_unused_variable_warning 2014-03-09 17:59:35 +00:00
52933ebd40 Merge branch 'develop' 2014-03-09 17:48:23 +00:00
cbf385ac05 fix concepts on gccc4.8.2 and dodgy test iterators in iterator_range_drop.cpp test case. 2014-03-09 17:47:44 +00:00
2f71c4b69b Merge branch 'develop' 2014-03-09 07:33:34 +00:00
4ebbbba82b ticket 7885 rvalue support for metafunctions. 2014-03-09 00:28:43 +00:00
be85e295e8 updated docs for hash_value iterator_range support. 2014-03-08 22:38:25 +00:00
f86d487706 ticket 7294 iterator_range hash_value support. 2014-03-08 22:23:22 +00:00
90faa3941c ticket 7328 gccxml compatibility. 2014-03-08 22:00:27 +00:00
9d0d5199ba ticket 9072 iterator_range accept reference to function type. 2014-03-08 21:54:55 +00:00
343e74b8e3 added algorithm_ext insert algorithm for containers without a where iterator. 2014-03-08 21:42:42 +00:00
7cd8b9ec24 updated algorithms.qbk to explicitly mention range_return_value so that this can be searched for. 2014-03-08 21:28:52 +00:00
7147a00fd7 ticket 5817 any_range default template params. 2014-03-08 21:19:03 +00:00
3ed0626756 ticket 8028 - combine reimplemented and now documented. 2014-03-08 20:52:10 +00:00
6c6be971ed Merge branch 'develop'
Removed html from Boost.Range documentation since it is now in the build.
2014-03-05 23:35:55 +00:00
94c31a790b removed the html files from Boost.Range since the docs are now in the build. 2014-03-05 22:16:07 +00:00
74fa42ed13 Merge branch 'develop'
These changes are just to address some small issues on some compiler versions with newly introduced tests. It also includes a fix to a recent regression in the sub_range class so that it preserves constness propagation as before the SFINAE improvement changes.
2014-03-05 22:02:25 +00:00
4960d8dab2 fix lifetime issue with test case for ticket 6715. 2014-03-04 20:29:34 +00:00
e089e0748f fix for recently introduced regression to sub_range const propagation. 2014-03-04 20:22:57 +00:00
e26866d3fa Merge branch 'feature/drop_front_back' into develop 2014-03-04 16:22:13 +00:00
09cc98f60d drop_front and drop_back included in synopsis. 2014-03-04 16:19:51 +00:00
69759731bb implemented drop_front and drop_back with test. 2014-03-04 15:05:00 +00:00
59f39e5d7f merge branch develop 2014-03-04 13:51:43 +00:00
194f357eeb trac 6685 - MFC range map adaptor. 2014-03-04 13:33:59 +00:00
b84385cfce trac 8803 - size(const Rng&) returns size_type. It also no longer requires random access. 2014-03-04 12:54:07 +00:00
5d6867d35c Merge branch 'hotfix/type_erased_test_split' into develop 2014-03-04 12:34:19 +00:00
0d93777ece type_erased unit test reduce dependencies of the recently split type_erased tests. 2014-03-04 12:33:51 +00:00
6206535453 type_erased random_access adapter separated. 2014-03-04 12:02:28 +00:00
a4633c2c1e type_erased_bidrectional.cpp formatting. 2014-03-04 11:53:13 +00:00
bd1fd9610e type_erased test separated the forward traversal. 2014-03-04 11:52:02 +00:00
379fbc51e3 type_erased unit test separated bidirectional traversal. 2014-03-04 11:46:57 +00:00
438e735dcc type_erased split out single-pass. 2014-03-04 11:41:19 +00:00
c96897198a type_erased test separated the template parameter conversion test. 2014-03-04 11:34:36 +00:00
b5f60f0448 removed obsolete test code from type_erased.cpp. 2014-03-04 11:28:22 +00:00
8de7e29fc7 type_erased mix of values test separated. 2014-03-04 11:26:50 +00:00
43ab929257 type_erased abstract and brackets tests separated. 2014-03-04 11:18:46 +00:00
c9a04a1a9a trac 7842 - documentation inaccuracies on intro page for range adaptors. 2014-03-03 18:58:33 +00:00
ef388661b3 trac 8927 - added comment about std::partition requirements pre C++11. 2014-03-03 18:36:01 +00:00
b3180d3a5a trac 9514 - adjacent_filtered requires a ForwardRange. 2014-03-03 18:30:13 +00:00
c9b96f2c88 trac 7376 - join iterator reference type. 2014-03-03 15:43:05 +00:00
ea6ca22e3f trac 7188 c4127 warning in the equal function. 2014-03-03 15:00:42 +00:00
42a7f0c70c trac 6742 - unit test showing working phoenix combined with the transformed adaptor. 2014-03-03 14:21:35 +00:00
4cb056c80b ticket 5811 - attempt to fix link error on many automated regression test hosts. 2014-03-03 12:30:23 +00:00
17c0fa271c trac 9515 - fix for uniqued adaptor consistent with unique algorithm. 2014-03-03 01:24:56 +00:00
d87e1f3ade make intel happy with type_erased static_assert calls. 2014-03-03 00:30:11 +00:00
132828a8db make msvc happy with the ticket 6715 test case. 2014-03-03 00:26:22 +00:00
63acc5c633 trac 8676 sliced adaptor fixed. 2014-03-03 00:10:08 +00:00
8b60f2c768 iterator_range interop with variant. 2014-03-02 22:50:24 +00:00
79d2a66831 trac 5816 - fix any_range requiring copyable elements. 2014-03-02 15:35:50 +00:00
3afac93b7f Merge branch 'hotfix/trac_8617_counting_range' into develop 2014-02-27 17:43:05 +00:00
3af0142509 fixed counting_range from a range. 2014-02-27 17:42:32 +00:00
19f0726533 Merge branch 'hotfix/trac_9524_assertions_break_single_pass' into develop 2014-02-27 16:52:46 +00:00
502abb9884 eliminate unused local typedef and signed/unsigned comparison warnings. 2014-02-27 16:34:58 +00:00
9b477525de reformatted numeric.hpp 2014-02-27 15:59:03 +00:00
fd0f99c767 inner_product avoids pre-condition check with input_iterators due to single-pass limitation. 2014-02-27 13:51:06 +00:00
259e917eaf trac_8693 const cast warn 2014-02-26 22:02:27 +00:00
665477de19 Merge branch 'hotfix/trac_6732_join_iterator_unused_warn' into develop 2014-02-26 21:41:01 +00:00
2a065b2420 trac_6732 join_iterator.hpp unused variable warn. 2014-02-26 21:40:39 +00:00
b130e25804 Merge branch 'hotfix/trac_9403_equal_impl_order_n' into develop 2014-02-26 21:35:03 +00:00
49cfefdef5 equal algorithm corrected to be O(1) with random access and pred. 2014-02-26 21:34:34 +00:00
f064012939 Merge branch 'hotfix/trac_9519_reverse_strided' into develop 2014-02-26 21:18:14 +00:00
ceffd1cf79 strided adaptor rewritten to correct defects and optimise performance. 2014-02-26 21:17:29 +00:00
298de4cd85 Merge branch 'hotfix/integer_range_size' into develop 2014-02-26 00:56:46 +00:00
9e6bdc13ba hotfix to regression in integer_range due to recent SFINAE change to iterator_range. 2014-02-26 00:56:27 +00:00
654ae838ee refactored iterator_range to better handle SFINAE. 2014-02-24 18:26:03 +00:00
b07224c752 Merge branch 'hotfix/ticket_6715_iterator_range_equality' into develop 2014-02-24 14:46:12 +00:00
1d91272a55 trac 6715 - iterator_range operators work automatically in derived. 2014-02-22 22:31:48 +00:00
d70210e6f2 Merge branch 'hotfix/trac5811_indirected_optional' into develop 2014-02-22 16:16:19 +00:00
8e7eeeb6d9 ticket 5811 - unit test to confirm already fixed. 2014-02-22 16:14:55 +00:00
7cd6631cae strided.cpp unit test has the deque test removed. 2014-02-21 17:52:32 +00:00
96054b0b48 unit test type_erased.cpp corrected mix of value types under test. 2014-02-21 17:50:28 +00:00
b795de8310 extension_size.cpp include added to cstdint.hpp 2014-02-21 17:44:16 +00:00
e513fb7e01 Create first merge point for Git 2014-02-01 01:43:28 -05:00
9928939724 Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
These evaded scripting.

[SVN r86249]
2013-12-30 04:56:00 -05:00
87ecc0caee Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #ifdef...#else...#endif blocks.

[SVN r86246]
2013-12-30 04:55:56 -05:00
2d78bde327 Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #ifndef...#else...#endif blocks.

[SVN r86245]
2013-12-30 04:55:51 -05:00
946d451d03 Remove obsolete files.
[SVN r86242]
2013-12-30 04:55:43 -05:00
b60d4c7172 Range: Remove obsolete GCC version checks.
[SVN r86102]
2013-12-30 04:55:38 -05:00
d1aea63c2f Remove obsolete MSVC check from pragma guard
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.

[SVN r85952]
2013-12-30 04:55:32 -05:00
ebbfe65595 Range: Remove obsolete MSVC version checks.
[SVN r85915]
2013-12-30 04:55:12 -05:00
738bd42696 Range: Remove ATL specific define for old MSVC.
[SVN r85912]
2013-12-30 04:53:54 -05:00
caeff56002 [boost][range] - fix a very odd compilation problem in range_size that only occurs on clang 4.2 on the Mac (clang 4.2 on linux is fine)
[SVN r85717]
2013-12-30 04:53:48 -05:00
d3b13dd490 Fixed compilation with gcc 4.7.
[SVN r85707]
2013-12-30 04:53:43 -05:00
01b4147e09 [boost][range] - removed warnings found building with clang 3.2.
[SVN r85698]
2013-12-30 04:53:39 -05:00
a8084dcb12 [boost][range] correct lifetime defect in the tokenized range adapter
[SVN r85697]
2013-12-30 04:53:34 -05:00
ec4783e655 [boost][range] - changed join_iterator reference type handling to address several user observations and failing clang builds.
[SVN r85692]
2013-12-30 04:53:29 -05:00
e7880d8963 [boost][range] - changed join_iterator reference type handling to address several user observations and failing clang builds.
[SVN r85691]
2013-12-30 04:53:24 -05:00
226dbab183 [boost][range] Ticket 8702 - size_type detection
[SVN r85690]
2013-12-30 04:53:17 -05:00
3d3dea1411 [boost][range] - fix for ticket 6888 - unique predicate overloads
[SVN r85686]
2013-12-30 04:53:12 -05:00
fbc0057432 [boost][range] - fix for ticket 8341 - has_range_iterator
[SVN r85682]
2013-12-30 04:53:06 -05:00
6f0ab4a8be range: silence some warnings
[SVN r85584]
2013-12-30 04:52:56 -05:00
4c28983459 [range] Fixed a bug in join_iterator where joining a const range and a non-const range led to a compiler error (refs #8483).
[SVN r85400]
2013-12-30 04:52:48 -05:00
58d1ee1444 Merge r86524 (Correct broken links to C++ standard papers); fixes #9212
[SVN r86673]
2013-11-13 03:22:55 +00:00
2735dcff18 Correct broken links to C++ standard papers. Refs #9212.
[SVN r86524]
2013-10-30 12:51:24 +00:00
e7185c2966 Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
These evaded scripting.

[SVN r86249]
2013-10-11 23:22:36 +00:00
5366172708 Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #ifdef...#else...#endif blocks.

[SVN r86246]
2013-10-11 23:19:17 +00:00
b02c60e468 Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #ifndef...#else...#endif blocks.

[SVN r86245]
2013-10-11 23:17:48 +00:00
c55650216f Remove obsolete files.
[SVN r86242]
2013-10-11 23:11:35 +00:00
1e6ba3c885 Range: Remove obsolete GCC version checks.
[SVN r86102]
2013-10-01 08:41:42 +00:00
4f34d95156 Remove obsolete MSVC check from pragma guard
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.

[SVN r85952]
2013-09-26 13:02:51 +00:00
650b75d2d7 Range: Remove obsolete MSVC version checks.
[SVN r85915]
2013-09-25 21:13:39 +00:00
8af782611e Range: Remove ATL specific define for old MSVC.
[SVN r85912]
2013-09-25 21:12:40 +00:00
34cea300e5 [boost][range] - fix a very odd compilation problem in range_size that only occurs on clang 4.2 on the Mac (clang 4.2 on linux is fine)
[SVN r85717]
2013-09-16 23:23:38 +00:00
cca9739022 Fixed compilation with gcc 4.7.
[SVN r85707]
2013-09-16 17:13:20 +00:00
30e6df5a15 [boost][range] - removed warnings found building with clang 3.2.
[SVN r85698]
2013-09-16 11:21:36 +00:00
2285f909f6 [boost][range] correct lifetime defect in the tokenized range adapter
[SVN r85697]
2013-09-16 10:10:12 +00:00
0addcfadeb [boost][range] - changed join_iterator reference type handling to address several user observations and failing clang builds.
[SVN r85692]
2013-09-15 22:15:46 +00:00
426e0c39a8 [boost][range] - changed join_iterator reference type handling to address several user observations and failing clang builds.
[SVN r85691]
2013-09-15 22:15:12 +00:00
f662a07bcc [boost][range] Ticket 8702 - size_type detection
[SVN r85690]
2013-09-15 21:54:32 +00:00
90ce7f3703 [boost][range] - fix for ticket 6888 - unique predicate overloads
[SVN r85686]
2013-09-15 19:44:36 +00:00
a59819fc6e [boost][range] - fix for ticket 8341 - has_range_iterator
[SVN r85682]
2013-09-15 18:05:49 +00:00
2480b52f5b range: silence some warnings
[SVN r85584]
2013-09-06 08:51:00 +00:00
b4f00e3c18 [range] Fixed a bug in join_iterator where joining a const range and a non-const range led to a compiler error (refs #8483).
[SVN r85400]
2013-08-20 06:06:12 +00:00
b0c1cf556f [range] Fixed a bug in istream_range() that prevented it from working with character types other than 'char' (refs #7407).
[SVN r84707]
2013-06-09 02:34:36 +00:00
8be23dd1aa [range] Fix off-by-one error in implementation of irange() (refs #7731).
[SVN r84701]
2013-06-08 20:41:43 +00:00
1eb5554da9 [range] Choose the appropriate implementation of BOOST_RANGE_EXTRACT_OPTIONAL_TYPE() based on BOOST_NO_PARTIAL_SPECIALIZATION_IMPLICIT_DEFAULT_ARGS rather than BOOST_NO_PARTIAL_TEMPLATE_SPECIALIZATION (refs #8453).
[SVN r84663]
2013-06-06 23:06:55 +00:00
3d3631744f [range] Don't include <istream> unnecessarily in istream_range.hpp (refs #7408).
[SVN r84644]
2013-06-05 00:55:37 +00:00
991bd7f8be [range] Fixed a failing test on gcc 4.2 (refs #6944).
[SVN r84643]
2013-06-05 00:42:41 +00:00
c908e04144 [range] Make iterator of 'indexed' adaptor default-constructible (refs #7827).
[SVN r84617]
2013-06-03 09:00:46 +00:00
1c18f42e83 [range] Use correct iterator concepts when checking Boost.Range concepts (refs #6944).
[SVN r84566]
2013-05-30 23:16:51 +00:00
fe79a8efdd [range] allow iterator_range to be instantiated with a pointer to an array as the iterator type (refs #8338)
[SVN r83596]
2013-03-27 02:16:11 +00:00
4971da58ee [range] fixed #7926 (missing prototypes for lower_bound and upper_bound in docs)
[SVN r82621]
2013-01-26 03:59:06 +00:00
45a1acb980 [range] fix some minor typos in comments - fixes #7916
[SVN r82594]
2013-01-24 09:10:47 +00:00
f228ab608a [range] fixed #7866 (minor typo in docs)
[SVN r82486]
2013-01-14 09:04:57 +00:00
cbd915a988 [range] fixed #5314 (small mistakes in range adaptor examples)
[SVN r82346]
2013-01-04 01:18:36 +00:00
fc88bc06ad [range] fixed #7843 (missing example in docs for 'tokenized' range adaptor)
[SVN r82345]
2013-01-04 00:58:17 +00:00
4a44cc75c9 [range] refactor use of examples in documentation to avoid redundancy
[SVN r82344]
2013-01-03 23:44:30 +00:00
86b169dab3 [range] fixed #5440 (typo in documentation for 'inner_product' algorithm)
[SVN r82327]
2013-01-03 01:06:39 +00:00
36843ccdba [range] docs for writing adaptors: removed clarification added in r82315 (it was redundant); fixed typos that messed up numbering
[SVN r82326]
2013-01-03 01:01:55 +00:00
17e4f7024d [range] fixed #5160 (typo in replace_copy_if() example on intro page for range adaptors)
[SVN r82325]
2013-01-02 23:41:58 +00:00
3379affd4a [range] fixed #7585 (typo in documentation for 'indexed' adaptor)
[SVN r82316]
2013-01-02 08:09:46 +00:00
958b4fbf6e [range] small clarification in documentation for how to write a range adaptor
[SVN r82315]
2013-01-02 08:05:30 +00:00
61979ff421 [range] fixed #6212 (missing step in documentation for how to write a range adaptor)
[SVN r82314]
2013-01-02 07:51:21 +00:00
1d51c3afb2 [range] fixed #5775 (typo in the documentation of pop_heap())
[SVN r82313]
2013-01-02 05:27:02 +00:00
b7f443e583 [range] corrected undesirable namespace nesting in algorithm/search_n.hpp; fixes #6103
[SVN r82071]
2012-12-18 09:25:08 +00:00
f49e347772 [range] added missing includes to any_range.hpp and related files; fixes #5603
[SVN r81890]
2012-12-13 07:48:50 +00:00
bf4ca510ea [range] fixed some doc typos (patch by Michel Morin)
[SVN r81889]
2012-12-13 07:09:11 +00:00
665c4a3234 [range] fixed a typo in the docs, introduced in r77990, that messed up the sections
[SVN r81888]
2012-12-13 07:01:39 +00:00
dceccc9de9 [boost][range] - Added the missing include of boost/utility/enable_if.hpp to boost/range/algorithm/for_each.hpp
[SVN r79180]
2012-06-29 21:49:37 +00:00
a72eae6099 Replace all uses of boost/utility.hpp with more-granular includes. Solves modularization dependency nightmare.
[SVN r78502]
2012-05-18 04:44:04 +00:00
5a04c9e05b [boost][range] - Ticket 5993 - Accumulate Concept Check constness.
[SVN r77993]
2012-04-15 12:24:53 +00:00
e6279d4436 [boost][range] - Ticket 6149 - as_literal causing unnecessary copy (on very silly compilers)
[SVN r77992]
2012-04-15 12:18:02 +00:00
11238e4c19 [boost][range] - Trac 5971 - size() should return an unsigned type.
[SVN r77990]
2012-04-15 11:52:01 +00:00
1cb6a99c80 eliminated unit_test_framework
[SVN r74719]
2011-10-05 09:13:05 +00:00
c4bd4bf4ce Remove tabs.
[SVN r72190]
2011-05-26 18:23:57 +00:00
41b76f8f5c [boost][range] - Ticket 5236 - Improved test coverage to ensure that the result for a random access strided range is consistent with that of a bidirectional strided range.
[SVN r72108]
2011-05-22 22:15:14 +00:00
846f11a96c [boost][range] - Ticket 5236 - Strided reversing past begin issue resolved.
[SVN r72107]
2011-05-22 22:06:30 +00:00
8810c4c4aa [boost][range] - Ticket 5547 - Boost.Range join() ambiguous with Boost.Algorithm join() function. Put the Boost.Range join function into the boost::range namespace and brought out with 'using'
[SVN r72106]
2011-05-22 21:19:53 +00:00
91428c2110 [boost][range] - Ticket 5530 - adaptor example fails to compile. This change adds tests for all of the .cpp example files for the range adaptors, and fixes a few small issues with the examples shown by the new tests.
[SVN r72104]
2011-05-22 21:03:01 +00:00
44c26a3356 [boost][range] - Ticket 5486 - Removal of unnecessary variables from adjacent_filtered_range. This removes the requirement for the predicate to be default constructible.
[SVN r72102]
2011-05-22 20:33:06 +00:00
b06fca8378 [boost][range] - Ticket 5556 - is_sorted namespace issue under GCC 4.5
[SVN r72101]
2011-05-22 20:20:20 +00:00
3b3889b70f [boost][range] - Ticket 5485 - doubly defined BOOST_DEFINE_RANGE_ADAPTOR_1 macro.
[SVN r72098]
2011-05-22 20:01:12 +00:00
5ed6116490 [boost][range] - ticket 5544 - fix for termination of irange - done properly for negative step sizes.
[SVN r72097]
2011-05-22 19:59:59 +00:00
df1a3a334f [boost][range] - ticket 5544 - fix for termination of irange.
[SVN r72070]
2011-05-22 11:16:53 +00:00
497 changed files with 10051 additions and 29717 deletions

151
.travis.yml Normal file
View File

@ -0,0 +1,151 @@
# Copyright 2016, 2017 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at http://boost.org/LICENSE_1_0.txt)
language: cpp
sudo: false
python: "2.7"
branches:
only:
- master
- develop
- /feature\/.*/
env:
matrix:
- BOGUS_JOB=true
matrix:
exclude:
- env: BOGUS_JOB=true
include:
- os: linux
compiler: g++
env: TOOLSET=gcc CXXSTD=03,11
- os: linux
compiler: g++-4.4
env: TOOLSET=gcc-4.4 CXXSTD=98,0x
addons:
apt:
packages:
- g++-4.4
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-4.6
env: TOOLSET=gcc-4.6 CXXSTD=03,0x
addons:
apt:
packages:
- g++-4.6
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-5
env: TOOLSET=gcc-5 CXXSTD=03,11
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-5
env: TOOLSET=gcc-5 CXXSTD=14,1z
addons:
apt:
packages:
- g++-5
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-6
env: TOOLSET=gcc-6 CXXSTD=03,11
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-6
env: TOOLSET=gcc-6 CXXSTD=14,1z
addons:
apt:
packages:
- g++-6
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-7
env: TOOLSET=gcc-7 CXXSTD=03,11
addons:
apt:
packages:
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: g++-7
env: TOOLSET=gcc-7 CXXSTD=14,17
addons:
apt:
packages:
- g++-7
sources:
- ubuntu-toolchain-r-test
- os: linux
compiler: clang++
env: TOOLSET=clang CXXSTD=03,11
- os: linux
compiler: clang++
env: TOOLSET=clang CXXSTD=14,1z
addons:
apt:
packages:
- libstdc++-4.9-dev
sources:
- ubuntu-toolchain-r-test
- os: osx
compiler: clang++
env: TOOLSET=clang CXXSTD=03,11
- os: osx
compiler: clang++
env: TOOLSET=clang CXXSTD=14,1z
install:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..
- git clone -b $BOOST_BRANCH https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/build
- git submodule update --init libs/config
- git submodule update --init tools/boostdep
- cp -r $TRAVIS_BUILD_DIR/* libs/range
- python tools/boostdep/depinst/depinst.py range
- ./bootstrap.sh
- ./b2 headers
script:
- ./b2 -j 3 libs/range/test toolset=$TOOLSET cxxstd=$CXXSTD
notifications:
email:
on_success: always

41
CMakeLists.txt Normal file
View File

@ -0,0 +1,41 @@
# Generated by `boostdep --cmake range`
# Copyright 2020 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
cmake_minimum_required(VERSION 3.5...3.16)
project(boost_range VERSION "${BOOST_SUPERPROJECT_VERSION}" LANGUAGES CXX)
add_library(boost_range INTERFACE)
add_library(Boost::range ALIAS boost_range)
target_include_directories(boost_range INTERFACE include)
target_link_libraries(boost_range
INTERFACE
Boost::array
Boost::assert
Boost::concept_check
Boost::config
Boost::container_hash
Boost::conversion
Boost::core
Boost::detail
Boost::iterator
Boost::mpl
Boost::optional
Boost::preprocessor
Boost::regex
Boost::static_assert
Boost::tuple
Boost::type_traits
Boost::utility
)
if(BUILD_TESTING AND EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/test/CMakeLists.txt")
add_subdirectory(test)
endif()

1
doc/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
*.html

View File

@ -28,3 +28,8 @@ boostbook quickbook
<format>pdf:<xsl:param>img.src.path=$(images_location)/
;
###############################################################################
alias boostdoc ;
explicit boostdoc ;
alias boostrelease : quickbook ;
explicit boostrelease ;

View File

@ -63,12 +63,14 @@
[def __counting_range__ [link range.reference.ranges.counting_range `counting_range`]]
[def __irange__ [link range.reference.ranges.irange `irange`]]
[def __istream_range__ [link range.reference.ranges.istream_range `istream_range`]]
[def __combine__ [link range.reference.utilities.combine `combine`]]
[def __join__ [link range.reference.utilities.join `join`]]
[def __range_adaptors__ [link range.reference.adaptors Range adaptors]]
[def __range_adaptors_adjacent_filtered__ [link range.reference.adaptors.reference.adjacent_filtered adjacent_filtered]]
[def __range_adaptors_copied__ [link range.reference.adaptors.reference.copied copied]]
[def __range_adaptors_filtered__ [link range.reference.adaptors.reference.filtered filtered]]
[def __range_adaptors_formatted__ [link.range.reference.adaptors.reference.formatted formatted]]
[def __range_adaptors_indexed__ [link range.reference.adaptors.reference.indexed indexed]]
[def __range_adaptors_indirected__ [link range.reference.adaptors.reference.indirected indirected]]
[def __range_adaptors_map_keys__ [link range.reference.adaptors.reference.map_keys map_keys]]
@ -171,7 +173,7 @@
[def __metafunctions__ [@boost:/libs/mpl/doc/refmanual/metafunction.html metafunctions]]
[def __concept_check__ [@boost:/libs/concept_check/index.html Boost Concept Check library]]
[def __boost_array__ [@boost:/libs/array/index.html boost::array]]
[def __the_forwarding_problem__ [@http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2002/n1385.htm The Forwarding Problem]]
[def __the_forwarding_problem__ [@http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2002/n1385.htm The Forwarding Problem]]
[def __sgi_inner_product__ [@http://www.sgi.com/tech/stl/inner_product.html inner_product]]
[def __sgi_partial_sum__ [@http://www.sgi.com/tech/stl/partial_sum.html partial_sum]]

View File

@ -7,7 +7,7 @@
[section Overview]
A Range is a [*/concept/] similar to the STL [@http://www.sgi.com/Technology/STL/Container.html Container] concept. A Range provides iterators for accessing a half-open range `[first,one_past_last)` of elements and provides information about the number of elements in the Range. However, a Range has fewer requirements than a Container.
A Range is a [*/concept/] similar to the STL [@http://www.sgi.com/tech/stl/Container.html Container] concept. A Range provides iterators for accessing a half-open range `[first,one_past_last)` of elements and provides information about the number of elements in the Range. However, a Range has fewer requirements than a Container.
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

View File

@ -46,7 +46,7 @@
[[`<boost/range/adaptor/copied.hpp>`] [__range_adaptors_copied__]]
[[`<boost/range/adaptor/filtered.hpp>`] [__range_adaptors_filtered__]]
[[`<boost/range/adaptor/indexed.hpp>`] [__range_adaptors_indexed__]]
[[`<boost/range/adaptor/indirected.hpp.`] [__range_adaptors_indirected__]]
[[`<boost/range/adaptor/indirected.hpp>`] [__range_adaptors_indirected__]]
[[`<boost/range/adaptor/map.hpp>`] [__range_adaptors_map_keys__ __range_adaptors_map_values__]]
[[`<boost/range/adaptor/replaced.hpp>`] [__range_adaptors_replaced__]]
[[`<boost/range/adaptor/replaced_if.hpp>`] [__range_adaptors_replaced_if__]]

View File

@ -1,156 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Chapter&#160;1.&#160;Range 2.0</title>
<link rel="stylesheet" href="../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="index.html" title="Chapter&#160;1.&#160;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="../../../../libs/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/src/images/next.png" alt="Next"></a></div>
<div class="chapter">
<div class="titlepage"><div>
<div><h2 class="title">
<a name="range"></a>Chapter&#160;1.&#160;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 &#169; 2003-2010 Thorsten Ottosen,
Neil Groves</p></div>
<div><div class="legalnotice">
<a name="range.legal"></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/concept_implementation.html">Range concept
implementation</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="range/reference/concept_implementation/synopsis.html">Synopsis</a></span></dt>
<dt><span class="section"><a href="range/reference/concept_implementation/semantics.html">Semantics</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/introduction.html">Introduction
and motivation</a></span></dt>
<dt><span class="section"><a href="range/reference/adaptors/general_requirements.html">General
Requirements</a></span></dt>
<dt><span class="section"><a href="range/reference/adaptors/reference.html">Reference</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="range/reference/algorithms.html">Range Algorithms</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="range/reference/algorithms/introduction.html">Introduction
and motivation</a></span></dt>
<dt><span class="section"><a href="range/reference/algorithms/mutating.html">Mutating algorithms</a></span></dt>
<dt><span class="section"><a href="range/reference/algorithms/non_mutating.html">Non-mutating
algorithms</a></span></dt>
<dt><span class="section"><a href="range/reference/algorithms/set.html">Set algorithms</a></span></dt>
<dt><span class="section"><a href="range/reference/algorithms/heap.html">Heap algorithms</a></span></dt>
<dt><span class="section"><a href="range/reference/algorithms/permutation.html">Permutation
algorithms</a></span></dt>
<dt><span class="section"><a href="range/reference/algorithms/new.html">New algorithms</a></span></dt>
<dt><span class="section"><a href="range/reference/algorithms/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/any_range.html">any_range</a></span></dt>
<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/utilities.html">Utilities</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="range/reference/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/reference/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/reference/utilities/join.html">Function join</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/style_guide.html">Terminology and style guidelines</a></span></dt>
<dt><span class="section"><a href="range/headers.html">Library Headers</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="range/headers/general.html">General</a></span></dt>
<dt><span class="section"><a href="range/headers/adaptors.html">Adaptors</a></span></dt>
<dt><span class="section"><a href="range/headers/algorithm.html">Algorithm</a></span></dt>
<dt><span class="section"><a href="range/headers/algorithm_ext.html">Algorithm Extensions</a></span></dt>
</dl></dd>
<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_49.html">Upgrade from version
1.49</a></span></dt>
<dt><span class="section"><a href="range/upgrade/upgrade_from_1_45.html">Upgrade from version
1.45</a></span></dt>
<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, range-based algorithms,
as well as range adaptors that allow for efficient and expressive code.
</p>
<p>
Using Boost.Range inplace of the standard library alternatives results in more
readable code and in many cases greater efficiency.
</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: January 26, 2013 at 03:49:11 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/src/images/next.png" alt="Next"></a></div>
</body>
</html>

View File

@ -1,156 +0,0 @@
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/concept_implementation.html
range/reference/concept_implementation/synopsis.html
range/reference/concept_implementation/semantics.html
range/reference/concept_implementation/semantics/metafunctions.html
range/reference/concept_implementation/semantics/functions.html
range/reference/adaptors.html
range/reference/adaptors/introduction.html
range/reference/adaptors/general_requirements.html
range/reference/adaptors/reference.html
range/reference/adaptors/reference/adjacent_filtered.html
range/reference/adaptors/reference/copied.html
range/reference/adaptors/reference/filtered.html
range/reference/adaptors/reference/indexed.html
range/reference/adaptors/reference/indirected.html
range/reference/adaptors/reference/map_keys.html
range/reference/adaptors/reference/map_values.html
range/reference/adaptors/reference/replaced.html
range/reference/adaptors/reference/replaced_if.html
range/reference/adaptors/reference/reversed.html
range/reference/adaptors/reference/sliced.html
range/reference/adaptors/reference/strided.html
range/reference/adaptors/reference/type_erased.html
range/reference/adaptors/reference/tokenized.html
range/reference/adaptors/reference/transformed.html
range/reference/adaptors/reference/uniqued.html
range/reference/algorithms.html
range/reference/algorithms/introduction.html
range/reference/algorithms/mutating.html
range/reference/algorithms/mutating/copy.html
range/reference/algorithms/mutating/copy_backward.html
range/reference/algorithms/mutating/fill.html
range/reference/algorithms/mutating/fill_n.html
range/reference/algorithms/mutating/generate.html
range/reference/algorithms/mutating/inplace_merge.html
range/reference/algorithms/mutating/merge.html
range/reference/algorithms/mutating/nth_element.html
range/reference/algorithms/mutating/partial_sort.html
range/reference/algorithms/mutating/partition.html
range/reference/algorithms/mutating/random_shuffle.html
range/reference/algorithms/mutating/remove.html
range/reference/algorithms/mutating/remove_copy.html
range/reference/algorithms/mutating/remove_copy_if.html
range/reference/algorithms/mutating/remove_if.html
range/reference/algorithms/mutating/replace.html
range/reference/algorithms/mutating/replace_copy.html
range/reference/algorithms/mutating/replace_copy_if.html
range/reference/algorithms/mutating/replace_if.html
range/reference/algorithms/mutating/reverse.html
range/reference/algorithms/mutating/reverse_copy.html
range/reference/algorithms/mutating/rotate.html
range/reference/algorithms/mutating/rotate_copy.html
range/reference/algorithms/mutating/sort.html
range/reference/algorithms/mutating/stable_partition.html
range/reference/algorithms/mutating/stable_sort.html
range/reference/algorithms/mutating/swap_ranges.html
range/reference/algorithms/mutating/transform.html
range/reference/algorithms/mutating/unique.html
range/reference/algorithms/mutating/unique_copy.html
range/reference/algorithms/non_mutating.html
range/reference/algorithms/non_mutating/adjacent_find.html
range/reference/algorithms/non_mutating/binary_search.html
range/reference/algorithms/non_mutating/count.html
range/reference/algorithms/non_mutating/count_if.html
range/reference/algorithms/non_mutating/equal.html
range/reference/algorithms/non_mutating/equal_range.html
range/reference/algorithms/non_mutating/for_each.html
range/reference/algorithms/non_mutating/find.html
range/reference/algorithms/non_mutating/find_end.html
range/reference/algorithms/non_mutating/find_first_of.html
range/reference/algorithms/non_mutating/find_if.html
range/reference/algorithms/non_mutating/lexicographical_compare.html
range/reference/algorithms/non_mutating/lower_bound.html
range/reference/algorithms/non_mutating/max_element.html
range/reference/algorithms/non_mutating/min_element.html
range/reference/algorithms/non_mutating/mismatch.html
range/reference/algorithms/non_mutating/search.html
range/reference/algorithms/non_mutating/search_n.html
range/reference/algorithms/non_mutating/upper_bound.html
range/reference/algorithms/set.html
range/reference/algorithms/set/includes.html
range/reference/algorithms/set/set_union.html
range/reference/algorithms/set/set_intersection.html
range/reference/algorithms/set/set_difference.html
range/reference/algorithms/set/set_symmetric_difference.html
range/reference/algorithms/heap.html
range/reference/algorithms/heap/push_heap.html
range/reference/algorithms/heap/pop_heap.html
range/reference/algorithms/heap/make_heap.html
range/reference/algorithms/heap/sort_heap.html
range/reference/algorithms/permutation.html
range/reference/algorithms/permutation/next_permutation.html
range/reference/algorithms/permutation/prev_permutation.html
range/reference/algorithms/new.html
range/reference/algorithms/new/copy_n.html
range/reference/algorithms/new/erase.html
range/reference/algorithms/new/for_each.html
range/reference/algorithms/new/insert.html
range/reference/algorithms/new/iota.html
range/reference/algorithms/new/is_sorted.html
range/reference/algorithms/new/overwrite.html
range/reference/algorithms/new/push_back.html
range/reference/algorithms/new/push_front.html
range/reference/algorithms/new/remove_erase.html
range/reference/algorithms/new/remove_erase_if.html
range/reference/algorithms/numeric.html
range/reference/algorithms/numeric/accumulate.html
range/reference/algorithms/numeric/adjacent_difference.html
range/reference/algorithms/numeric/inner_product.html
range/reference/algorithms/numeric/partial_sum.html
range/reference/ranges.html
range/reference/ranges/any_range.html
range/reference/ranges/counting_range.html
range/reference/ranges/istream_range.html
range/reference/ranges/irange.html
range/reference/utilities.html
range/reference/utilities/iterator_range.html
range/reference/utilities/sub_range.html
range/reference/utilities/join.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/style_guide.html
range/headers.html
range/headers/general.html
range/headers/adaptors.html
range/headers/algorithm.html
range/headers/algorithm_ext.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_49.html
range/upgrade/upgrade_from_1_45.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

View File

@ -1,52 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Range Concepts</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/overview.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section 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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/overview.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,301 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Bidirectional Range</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random_access_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_concepts_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>
<h5>
<a name="range.concepts.bidirectional_range.h0"></a>
<span><a name="range.concepts.bidirectional_range.notation"></a></span><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>
<h5>
<a name="range.concepts.bidirectional_range.h1"></a>
<span><a name="range.concepts.bidirectional_range.description"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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>
<h5>
<a name="range.concepts.bidirectional_range.h2"></a>
<span><a name="range.concepts.bidirectional_range.refinement_of"></a></span><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>
<h5>
<a name="range.concepts.bidirectional_range.h3"></a>
<span><a name="range.concepts.bidirectional_range.associated_types"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">const</span> <span class="identifier">X</span><span class="special">&gt;::</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>
<h5>
<a name="range.concepts.bidirectional_range.h4"></a>
<span><a name="range.concepts.bidirectional_range.valid_expressions"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">const</span>
<span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">const</span>
<span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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>
<h5>
<a name="range.concepts.bidirectional_range.h5"></a>
<span><a name="range.concepts.bidirectional_range.complexity_guarantees"></a></span><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>
<h5>
<a name="range.concepts.bidirectional_range.h6"></a>
<span><a name="range.concepts.bidirectional_range.invariants"></a></span><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>
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">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>
will pass through every element of <code class="computeroutput"><span class="identifier">a</span></code>.
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="range.concepts.bidirectional_range.h7"></a>
<span><a name="range.concepts.bidirectional_range.see_also"></a></span><a class="link" href="bidirectional_range.html#range.concepts.bidirectional_range.see_also">See
also</a>
</h5>
<p>
<a class="link" href="../reference/concept_implementation/semantics/metafunctions.html" title="Metafunctions">Implementation
of metafunctions</a>
</p>
<p>
<a class="link" href="../reference/concept_implementation/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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random_access_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,108 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Concept Checking</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_concepts_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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span> <span class="special">));</span>
<span class="identifier">BOOST_CONCEPT_ASSERT</span><span class="special">((</span> <span class="identifier">ReadableIteratorConcept</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;</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>
<h5>
<a name="range.concepts.concept_checking.h0"></a>
<span><a name="range.concepts.concept_checking.see_also"></a></span><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,163 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Forward Range</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bidirectional_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_concepts_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>
<h5>
<a name="range.concepts.forward_range.h0"></a>
<span><a name="range.concepts.forward_range.notation"></a></span><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>
<h5>
<a name="range.concepts.forward_range.h1"></a>
<span><a name="range.concepts.forward_range.description"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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>
<h5>
<a name="range.concepts.forward_range.h2"></a>
<span><a name="range.concepts.forward_range.refinement_of"></a></span><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>
<h5>
<a name="range.concepts.forward_range.h3"></a>
<span><a name="range.concepts.forward_range.associated_types"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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>
<h5>
<a name="range.concepts.forward_range.h4"></a>
<span><a name="range.concepts.forward_range.see_also"></a></span><a class="link" href="forward_range.html#range.concepts.forward_range.see_also">See
also</a>
</h5>
<p>
<a class="link" href="../reference/concept_implementation/semantics/metafunctions.html" title="Metafunctions">Implementation
of metafunctions</a>
</p>
<p>
<a class="link" href="../reference/concept_implementation/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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="bidirectional_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,80 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Overview</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="single_pass_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_concepts_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="../../../../../../libs/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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="single_pass_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,187 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Random Access Range</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concept_checking.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_concepts_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>
<h5>
<a name="range.concepts.random_access_range.h0"></a>
<span><a name="range.concepts.random_access_range.description"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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>
<h5>
<a name="range.concepts.random_access_range.h1"></a>
<span><a name="range.concepts.random_access_range.refinement_of"></a></span><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>
<h5>
<a name="range.concepts.random_access_range.h2"></a>
<span><a name="range.concepts.random_access_range.valid_expressions"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</p>
</td>
</tr></tbody>
</table></div>
<h5>
<a name="range.concepts.random_access_range.h3"></a>
<span><a name="range.concepts.random_access_range.expression_semantics"></a></span><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">&gt;=</span> <span class="number">0</span></code>
</p>
</td>
</tr></tbody>
</table></div>
<h5>
<a name="range.concepts.random_access_range.h4"></a>
<span><a name="range.concepts.random_access_range.complexity_guarantees"></a></span><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> completes in amortized constant time.
</p>
<h5>
<a name="range.concepts.random_access_range.h5"></a>
<span><a name="range.concepts.random_access_range.invariants"></a></span><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concept_checking.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,352 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Single Pass Range</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="forward_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_concepts_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>
<h5>
<a name="range.concepts.single_pass_range.h0"></a>
<span><a name="range.concepts.single_pass_range.notation"></a></span><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>
<h5>
<a name="range.concepts.single_pass_range.h1"></a>
<span><a name="range.concepts.single_pass_range.description"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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>
<h5>
<a name="range.concepts.single_pass_range.h2"></a>
<span><a name="range.concepts.single_pass_range.associated_types"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">const</span> <span class="identifier">X</span><span class="special">&gt;::</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>
<h5>
<a name="range.concepts.single_pass_range.h3"></a>
<span><a name="range.concepts.single_pass_range.valid_expressions"></a></span><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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">const</span>
<span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">X</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">const</span>
<span class="identifier">X</span><span class="special">&gt;::</span><span class="identifier">type</span></code> otherwise
</p>
</td>
</tr>
</tbody>
</table></div>
<h5>
<a name="range.concepts.single_pass_range.h4"></a>
<span><a name="range.concepts.single_pass_range.expression_semantics"></a></span><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>
<h5>
<a name="range.concepts.single_pass_range.h5"></a>
<span><a name="range.concepts.single_pass_range.complexity_guarantees"></a></span><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>
<h5>
<a name="range.concepts.single_pass_range.h6"></a>
<span><a name="range.concepts.single_pass_range.invariants"></a></span><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>
<h5>
<a name="range.concepts.single_pass_range.h7"></a>
<span><a name="range.concepts.single_pass_range.see_also"></a></span><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/concept_implementation/semantics/metafunctions.html" title="Metafunctions">Implementation
of metafunctions</a>
</p>
<p>
<a class="link" href="../reference/concept_implementation/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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="forward_range.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,75 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Examples</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="prev" href="headers/algorithm_ext.html" title="Algorithm Extensions">
<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="../../../../../libs/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="headers/algorithm_ext.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_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 &#169; 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="headers/algorithm_ext.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,90 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>FAQ</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="history_ack.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_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">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
and <code class="computeroutput"><span class="identifier">range_const_iterator</span><span class="special">&lt;</span><span class="identifier">C</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">iterator</span><span class="special">,</span> <span class="identifier">iterator</span><span class="special">&gt;</span></code>?</strong></span></em></span>
</p>
<div class="blockquote"><blockquote class="blockquote"><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">&lt;</span><span class="identifier">const_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">&gt;</span></code> object.
</p></blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
Note that an <a class="link" href="reference/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="reference/utilities/sub_range.html" title="Class sub_range"><code class="computeroutput"><span class="identifier">sub_range</span></code></a> does propagate const-ness.
</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>
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></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>
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></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>
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></blockquote></div>
<div class="blockquote"><blockquote class="blockquote"><p>
Note also that incrementable iterators are derived from output iterators
and so there exist no output range.
</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="history_ack.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,50 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Library Headers</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="prev" href="style_guide.html" title="Terminology and style guidelines">
<link rel="next" href="headers/general.html" title="General">
</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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="headers/general.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_headers">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="range.headers"></a><a class="link" href="headers.html" title="Library Headers">Library Headers</a>
</h2></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="headers/general.html">General</a></span></dt>
<dt><span class="section"><a href="headers/adaptors.html">Adaptors</a></span></dt>
<dt><span class="section"><a href="headers/algorithm.html">Algorithm</a></span></dt>
<dt><span class="section"><a href="headers/algorithm_ext.html">Algorithm Extensions</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="headers/general.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,233 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Adaptors</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../headers.html" title="Library Headers">
<link rel="prev" href="general.html" title="General">
<link rel="next" href="algorithm.html" title="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="../../../../../../libs/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="general.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_headers_adaptors">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.headers.adaptors"></a><a class="link" href="adaptors.html" title="Adaptors">Adaptors</a>
</h3></div></div></div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Header
</p>
</th>
<th>
<p>
Includes
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/adjacent_filtered.html" title="adjacent_filtered">adjacent_filtered</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/copied.html" title="copied">copied</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/filtered.html" title="filtered">filtered</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/indexed.html" title="indexed">indexed</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/indirected.html" title="indirected">indirected</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/map_keys.html" title="map_keys">map_keys</a>
<a class="link" href="../reference/adaptors/reference/map_values.html" title="map_values">map_values</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/replaced.html" title="replaced">replaced</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/replaced_if.html" title="replaced_if">replaced_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/reversed.html" title="reversed">reversed</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/sliced.html" title="sliced">sliced</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/strided.html" title="strided">strided</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">tokenized</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/tokenized.html" title="tokenized">tokenized</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/transformed.html" title="transformed">transformed</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/uniqued.html" title="uniqued">uniqued</a>
</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 &#169; 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="general.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,684 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Algorithm</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../headers.html" title="Library Headers">
<link rel="prev" href="adaptors.html" title="Adaptors">
<link rel="next" href="algorithm_ext.html" title="Algorithm Extensions">
</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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm_ext.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_headers_algorithm">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.headers.algorithm"></a><a class="link" href="algorithm.html" title="Algorithm">Algorithm</a>
</h3></div></div></div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Header
</p>
</th>
<th>
<p>
Includes
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">adjacent_find</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/adjacent_find.html" title="adjacent_find">adjacent_find</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">binary_search</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/binary_search.html" title="binary_search">binary_search</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/copy.html" title="copy">copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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_backward</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/copy_backward.html" title="copy_backward">copy_backward</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">count</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/count.html" title="count">count</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">count_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/count_if.html" title="count_if">count_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/equal.html" title="equal">equal</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">equal_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/equal_range.html" title="equal_range">equal_range</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">fill</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/fill.html" title="fill">fill</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">fill_n</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/fill_n.html" title="fill_n">fill_n</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">find</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/find.html" title="find">find</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">find_end</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/find_end.html" title="find_end">find_end</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">find_first_of</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/find_first_of.html" title="find_first_of">find_first_of</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">find_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/find_if.html" title="find_if">find_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/for_each.html" title="for_each">for_each</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">generate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/generate.html" title="generate">generate</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/heap/push_heap.html" title="push_heap">push_heap</a>
<a class="link" href="../reference/algorithms/heap/pop_heap.html" title="pop_heap">pop_heap</a>
<a class="link" href="../reference/algorithms/heap/make_heap.html" title="make_heap">make_heap</a>
<a class="link" href="../reference/algorithms/heap/sort_heap.html" title="sort_heap">sort_heap</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">inplace_merge</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/inplace_merge.html" title="inplace_merge">inplace_merge</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">lexicographical_compare</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/lexicographical_compare.html" title="lexicographical_compare">lexicographical_compare</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">lower_bound</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/lower_bound.html" title="lower_bound">lower_bound</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">max_element</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/max_element.html" title="max_element">max_element</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">merge</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/merge.html" title="merge">merge</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">min_element</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/min_element.html" title="min_element">min_element</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">mismatch</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/mismatch.html" title="mismatch">mismatch</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">nth_element</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/nth_element.html" title="nth_element">nth_element</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">partial_sort</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/partial_sort.html" title="partial_sort">partial_sort</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">partition</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/partition.html" title="partition">partition</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">permutation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/permutation/next_permutation.html" title="next_permutation">next_permutation</a>
<a class="link" href="../reference/algorithms/permutation/prev_permutation.html" title="prev_permutation">prev_permutation</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">random_shuffle</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/random_shuffle.html" title="random_shuffle">random_shuffle</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">remove</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/remove.html" title="remove">remove</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">remove_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/remove_copy.html" title="remove_copy">remove_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">remove_copy_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/remove_copy_if.html" title="remove_copy_if">remove_copy_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">remove_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/remove_if.html" title="remove_if">remove_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">replace</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/replace.html" title="replace">replace</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">replace_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/replace_copy.html" title="replace_copy">replace_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">replace_copy_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/replace_copy_if.html" title="replace_copy_if">replace_copy_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">replace_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/replace_if.html" title="replace_if">replace_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">reverse</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/reverse.html" title="reverse">reverse</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">reverse_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/reverse_copy.html" title="reverse_copy">reverse_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">rotate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/rotate.html" title="rotate">rotate</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">rotate_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/rotate_copy.html" title="rotate_copy">rotate_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">search</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/search.html" title="search">search</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">search_n</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/search_n.html" title="search_n">search_n</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">set_algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/set/includes.html" title="includes">includes</a>
<a class="link" href="../reference/algorithms/set/set_union.html" title="set_union">set_union</a>
<a class="link" href="../reference/algorithms/set/set_intersection.html" title="set_intersection">set_intersection</a>
<a class="link" href="../reference/algorithms/set/set_difference.html" title="set_difference">set_difference</a>
<a class="link" href="../reference/algorithms/set/set_symmetric_difference.html" title="set_symmetric_difference">set_symmetric_difference</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">sort</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/sort.html" title="sort">sort</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">stable_partition</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/stable_partition.html" title="stable_partition">stable_partition</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">swap_ranges</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/swap_ranges.html" title="swap_ranges">swap_ranges</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">transform</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/transform.html" title="transform">transform</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">unique</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/unique.html" title="unique">unique</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">unique_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/unique_copy.html" title="unique_copy">unique_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">upper_bound</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/upper_bound.html" title="upper_bound">upper_bound</a>
</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm_ext.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,172 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Algorithm Extensions</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../headers.html" title="Library Headers">
<link rel="prev" href="algorithm.html" title="Algorithm">
<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="../../../../../../libs/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="algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_headers_algorithm_ext">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.headers.algorithm_ext"></a><a class="link" href="algorithm_ext.html" title="Algorithm Extensions">Algorithm Extensions</a>
</h3></div></div></div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Header
</p>
</th>
<th>
<p>
Includes
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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">copy_n</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/copy_n.html" title="copy_n">copy_n</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/erase.html" title="erase">erase</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/for_each.html" title="for_each">for_each</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/insert.html" title="insert">insert</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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">iota</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/iota.html" title="iota">iota</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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">is_sorted</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/is_sorted.html" title="is_sorted">is_sorted</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/overwrite.html" title="overwrite">overwrite</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/push_back.html" title="push_back">push_back</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/push_front.html" title="push_front">push_front</a>
</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 &#169; 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="algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,552 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>General</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../headers.html" title="Library Headers">
<link rel="prev" href="../headers.html" title="Library Headers">
<link rel="next" href="adaptors.html" title="Adaptors">
</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="../../../../../../libs/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="../headers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_headers_general">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.headers.general"></a><a class="link" href="general.html" title="General">General</a>
</h3></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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
everything from Boost.Range version 1 (Boost versions 1.42 and
below). Includes the core range functions and metafunctions, but
excludes Range Adaptors and Range Algorithms.
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
every metafunction
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
every function
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">begin</span></code></a> and <a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">end</span></code></a> and <a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">rbegin</span></code></a> and <a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">rend</span></code></a> and <a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/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">&lt;</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">&gt;</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>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
every range adaptor
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
every range equivalent of an STL algorithm
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
every range algorithm that is an extension of the STL algorithms
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">counting_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/ranges/counting_range.html" title="counting_range"><code class="computeroutput"><span class="identifier">counting_range</span></code></a>
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">istream_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/ranges/istream_range.html" title="istream_range"><code class="computeroutput"><span class="identifier">istream_range</span></code></a>
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">irange</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/ranges/irange.html" title="irange"><code class="computeroutput"><span class="identifier">irange</span></code></a>
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/utilities/join.html" title="Function join"><code class="computeroutput"><span class="identifier">join</span></code></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 &#169; 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="../headers.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,157 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>History and Acknowledgement</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div>
<div class="section range_history_ack">
<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>
<h4>
<a name="range.history_ack.h0"></a>
<span><a name="range.history_ack.version_1___before_boost_1_43"></a></span><a class="link" href="history_ack.html#range.history_ack.version_1___before_boost_1_43">Version
1 - before Boost 1.43</a>
</h4>
<p>
The library have been under way for a long time. Dietmar K&#252;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 as possible) to vc6 and vc7.
</li>
</ul></div>
<p>
The concept checks and their documentation was provided by Daniel Walker.
</p>
<h4>
<a name="range.history_ack.h1"></a>
<span><a name="range.history_ack.version_2___boost_1_43_and_beyond"></a></span><a class="link" href="history_ack.html#range.history_ack.version_2___boost_1_43_and_beyond">Version
2 - Boost 1.43 and beyond</a>
</h4>
<p>
This version introduced Range Adaptors and Range Algorithms. This version 2
is the result of a merge of all of the RangeEx features into Boost.Range.
</p>
<p>
There were an enormous number of very significant contributors through all
stages of this library.
</p>
<p>
Prior to Boost.RangeEx there had been a number of Range library implementations,
these include library implementations by Eric Niebler, Adobe, Shunsuke Sogame
etc. Eric Niebler contributed the Range Adaptor idea which is arguably the
single biggest innovation in this library. Inevitably a great deal of commonality
evolved in each of these libraries, but a considerable amount of effort was
expended to learn from all of the divergent techniques.
</p>
<p>
The people in the following list all made contributions in the form of reviews,
user feedback, design suggestions, or defect detection:
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
Thorsten Ottosen: review management, design advice, documentation feedback
</li>
<li class="listitem">
Eric Niebler: early implementation, and review feedback
</li>
<li class="listitem">
Joel de Guzman: review
</li>
<li class="listitem">
Mathias Gaunard: review
</li>
<li class="listitem">
David Abrahams: implementation advice
</li>
<li class="listitem">
Robert Jones: defect reports, usage feedback
</li>
<li class="listitem">
Sean Parent: contributed experience from the Adobe range library
</li>
<li class="listitem">
Arno Schoedl: implementations, and review
</li>
<li class="listitem">
Rogier van Dalen: review
</li>
<li class="listitem">
Vincente Botet: review, documentation feedback
</li>
</ul></div>
<p>
Regardless of how I write this section it will never truly fairly capture the
gratitude that I feel to all who have contributed. Thank you everyone.
</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a>
</div>
</body>
</html>

View File

@ -1,127 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Introduction</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="prev" href="../index.html" title="Chapter&#160;1.&#160;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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_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 used throughout the C++ community are standard
library containers. When writing algorithms however, one often finds it desirable
for the algorithm to accept 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>
<h4>
<a name="range.introduction.h0"></a>
<span><a name="range.introduction.example___iterate_over_the_values_in_a_map"></a></span><a class="link" href="introduction.html#range.introduction.example___iterate_over_the_values_in_a_map">Example
- Iterate over the values in a map</a>
</h4>
<p>
</p>
<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</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">for_each</span><span class="special">(</span> <span class="identifier">my_map</span> <span class="special">|</span> <span class="identifier">map_values</span><span class="special">,</span> <span class="identifier">fn</span> <span class="special">);</span>
</pre>
<p>
</p>
<h4>
<a name="range.introduction.h1"></a>
<span><a name="range.introduction.example___iterate_over_the_keys_in_a_map"></a></span><a class="link" href="introduction.html#range.introduction.example___iterate_over_the_keys_in_a_map">Example
- Iterate over the keys in a map</a>
</h4>
<p>
</p>
<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</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">for_each</span><span class="special">(</span> <span class="identifier">my_map</span> <span class="special">|</span> <span class="identifier">map_keys</span><span class="special">,</span> <span class="identifier">fn</span> <span class="special">);</span>
</pre>
<p>
</p>
<h4>
<a name="range.introduction.h2"></a>
<span><a name="range.introduction.example___push_the_even_values_from_a_map_in_reverse_order_into_the_container__code__phrase_role__identifier__target__phrase___code_"></a></span><a class="link" href="introduction.html#range.introduction.example___push_the_even_values_from_a_map_in_reverse_order_into_the_container__code__phrase_role__identifier__target__phrase___code_">Example
- Push the even values from a map in reverse order into the container <code class="computeroutput"><span class="identifier">target</span></code></a>
</h4>
<p>
</p>
<pre class="programlisting"><span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</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="comment">// Assume that is_even is a predicate that has been implemented elsewhere...</span>
<span class="identifier">push_back</span><span class="special">(</span><span class="identifier">target</span><span class="special">,</span> <span class="identifier">my_map</span> <span class="special">|</span> <span class="identifier">map_values</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="special">|</span> <span class="identifier">reversed</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,50 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Library Headers</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="prev" href="style_guide.html" title="Terminology and style guidelines">
<link rel="next" href="library_headers/general.html" title="General">
</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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="library_headers/general.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<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="toc"><dl>
<dt><span class="section"><a href="library_headers/general.html">General</a></span></dt>
<dt><span class="section"><a href="library_headers/adaptors.html">Adaptors</a></span></dt>
<dt><span class="section"><a href="library_headers/algorithm.html">Algorithm</a></span></dt>
<dt><span class="section"><a href="library_headers/algorithm_extensions.html">Algorithm
Extensions</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="library_headers/general.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,232 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Adaptors</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../library_headers.html" title="Library Headers">
<link rel="prev" href="general.html" title="General">
<link rel="next" href="algorithm.html" title="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="../../../../../../libs/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="general.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.library_headers.adaptors"></a><a class="link" href="adaptors.html" title="Adaptors">Adaptors</a>
</h3></div></div></div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Header
</p>
</th>
<th>
<p>
Includes
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/adjacent_filtered.html" title="adjacent_filtered">adjacent_filtered</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/copied.html" title="copied">copied</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/filtered.html" title="filtered">filtered</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/indexed.html" title="indexed">indexed</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/indirected.html" title="indirected">indirected</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/map_keys.html" title="map_keys">map_keys</a>
<a class="link" href="../reference/adaptors/reference/map_values.html" title="map_values">map_values</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/replaced.html" title="replaced">replaced</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/replaced_if.html" title="replaced_if">replaced_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/reversed.html" title="reversed">reversed</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/sliced.html" title="sliced">sliced</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/strided.html" title="strided">strided</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">tokenized</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/tokenized.html" title="tokenized">tokenized</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/transformed.html" title="transformed">transformed</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/adaptors/reference/uniqued.html" title="uniqued">uniqued</a>
</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 &#169; 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="general.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,683 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Algorithm</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../library_headers.html" title="Library Headers">
<link rel="prev" href="adaptors.html" title="Adaptors">
<link rel="next" href="algorithm_extensions.html" title="Algorithm Extensions">
</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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm_extensions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.library_headers.algorithm"></a><a class="link" href="algorithm.html" title="Algorithm">Algorithm</a>
</h3></div></div></div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Header
</p>
</th>
<th>
<p>
Includes
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">adjacent_find</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/adjacent_find.html" title="adjacent_find">adjacent_find</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">binary_search</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/binary_search.html" title="binary_search">binary_search</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/copy.html" title="copy">copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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_backward</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/copy_backward.html" title="copy_backward">copy_backward</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">count</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/count.html" title="count">count</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">count_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/count_if.html" title="count_if">count_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">equal</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/equal.html" title="equal">equal</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">equal_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/equal_range.html" title="equal_range">equal_range</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">fill</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/fill.html" title="fill">fill</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">fill_n</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/fill_n.html" title="fill_n">fill_n</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">find</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/find.html" title="find">find</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">find_end</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/find_end.html" title="find_end">find_end</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">find_first_of</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/find_first_of.html" title="find_first_of">find_first_of</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">find_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/find_if.html" title="find_if">find_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">for_each</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/for_each.html" title="for_each">for_each</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">generate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/generate.html" title="generate">generate</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">heap_algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/heap/push_heap.html" title="push_heap">push_heap</a>
<a class="link" href="../reference/algorithms/heap/pop_heap.html" title="pop_heap">pop_heap</a>
<a class="link" href="../reference/algorithms/heap/make_heap.html" title="make_heap">make_heap</a>
<a class="link" href="../reference/algorithms/heap/sort_heap.html" title="sort_heap">sort_heap</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">inplace_merge</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/inplace_merge.html" title="inplace_merge">inplace_merge</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">lexicographical_compare</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/lexicographical_compare.html" title="lexicographical_compare">lexicographical_compare</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">lower_bound</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/lower_bound.html" title="lower_bound">lower_bound</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">max_element</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/max_element.html" title="max_element">max_element</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">merge</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/merge.html" title="merge">merge</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">min_element</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/min_element.html" title="min_element">min_element</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">mismatch</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/mismatch.html" title="mismatch">mismatch</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">nth_element</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/nth_element.html" title="nth_element">nth_element</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">partial_sort</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/partial_sort.html" title="partial_sort">partial_sort</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">partition</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/partition.html" title="partition">partition</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">permutation</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/permutation/next_permutation.html" title="next_permutation">next_permutation</a>
<a class="link" href="../reference/algorithms/permutation/prev_permutation.html" title="prev_permutation">prev_permutation</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">random_shuffle</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/random_shuffle.html" title="random_shuffle">random_shuffle</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">remove</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/remove.html" title="remove">remove</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">remove_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/remove_copy.html" title="remove_copy">remove_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">remove_copy_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/remove_copy_if.html" title="remove_copy_if">remove_copy_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">remove_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/remove_if.html" title="remove_if">remove_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">replace</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/replace.html" title="replace">replace</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">replace_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/replace_copy.html" title="replace_copy">replace_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">replace_copy_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/replace_copy_if.html" title="replace_copy_if">replace_copy_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">replace_if</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/replace_if.html" title="replace_if">replace_if</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">reverse</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/reverse.html" title="reverse">reverse</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">reverse_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/reverse_copy.html" title="reverse_copy">reverse_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">rotate</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/rotate.html" title="rotate">rotate</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">rotate_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/rotate_copy.html" title="rotate_copy">rotate_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">search</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/search.html" title="search">search</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">search_n</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/search_n.html" title="search_n">search_n</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">set_algorithm</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/set/includes.html" title="includes">includes</a>
<a class="link" href="../reference/algorithms/set/set_union.html" title="set_union">set_union</a>
<a class="link" href="../reference/algorithms/set/set_intersection.html" title="set_intersection">set_intersection</a>
<a class="link" href="../reference/algorithms/set/set_difference.html" title="set_difference">set_difference</a>
<a class="link" href="../reference/algorithms/set/set_symmetric_difference.html" title="set_symmetric_difference">set_symmetric_difference</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">sort</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/sort.html" title="sort">sort</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">stable_partition</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/stable_partition.html" title="stable_partition">stable_partition</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">swap_ranges</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/swap_ranges.html" title="swap_ranges">swap_ranges</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">transform</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/transform.html" title="transform">transform</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">unique</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/unique.html" title="unique">unique</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">unique_copy</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/mutating/unique_copy.html" title="unique_copy">unique_copy</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">upper_bound</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/non_mutating/upper_bound.html" title="upper_bound">upper_bound</a>
</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithm_extensions.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,172 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Algorithm Extensions</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../library_headers.html" title="Library Headers">
<link rel="prev" href="algorithm.html" title="Algorithm">
<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="../../../../../../libs/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="algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.library_headers.algorithm_extensions"></a><a class="link" href="algorithm_extensions.html" title="Algorithm Extensions">Algorithm
Extensions</a>
</h3></div></div></div>
<div class="informaltable"><table class="table">
<colgroup>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Header
</p>
</th>
<th>
<p>
Includes
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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">copy_n</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/copy_n.html" title="copy_n">copy_n</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/erase.html" title="erase">erase</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/for_each.html" title="for_each">for_each</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/insert.html" title="insert">insert</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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">iota</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/iota.html" title="iota">iota</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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">is_sorted</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/is_sorted.html" title="is_sorted">is_sorted</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/overwrite.html" title="overwrite">overwrite</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/push_back.html" title="push_back">push_back</a>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/algorithms/new/push_front.html" title="push_front">push_front</a>
</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 &#169; 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="algorithm.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../examples.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,551 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>General</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../library_headers.html" title="Library Headers">
<link rel="prev" href="../library_headers.html" title="Library Headers">
<link rel="next" href="adaptors.html" title="Adaptors">
</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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.library_headers.general"></a><a class="link" href="general.html" title="General">General</a>
</h3></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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
everything from Boost.Range version 1 (Boost versions 1.42 and
below). Includes the core range functions and metafunctinos, but
excludes Range Adaptors and Range Algorithms.
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
every metafunction
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
every function
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">begin</span></code></a> and <a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">end</span></code></a> and <a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">rbegin</span></code></a> and <a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/semantics/functions.html" title="Functions"><code class="computeroutput"><span class="identifier">rend</span></code></a> and <a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/concept_implementation/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/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">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/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">&lt;</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">&gt;</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>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
every range adaptor
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</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">&gt;</span></code>
</p>
</td>
<td>
<p>
every range equivalent of an STL algorithm
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><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">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
every range algorithm that is an extension of the STL algorithms
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">counting_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/ranges/counting_range.html" title="counting_range"><code class="computeroutput"><span class="identifier">counting_range</span></code></a>
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">istream_range</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/ranges/istream_range.html" title="istream_range"><code class="computeroutput"><span class="identifier">istream_range</span></code></a>
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">irange</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/ranges/irange.html" title="irange"><code class="computeroutput"><span class="identifier">irange</span></code></a>
</p>
</td>
<td>
<p>
-
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">/</span><span class="identifier">join</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
</p>
</td>
<td>
<p>
<a class="link" href="../reference/utilities/join.html" title="Function join"><code class="computeroutput"><span class="identifier">join</span></code></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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../library_headers.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,141 +0,0 @@
<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/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl/requirements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_mfc_atl">
<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>
<h5>
<a name="range.mfc_atl.h0"></a>
<span><a name="range.mfc_atl.introduction"></a></span><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>
<h5>
<a name="range.mfc_atl.h1"></a>
<span><a name="range.mfc_atl.overview"></a></span><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">&lt;</span><span class="identifier">CPtrArray</span><span class="special">,</span> <span class="identifier">CList</span><span class="special">&lt;</span><span class="identifier">CString</span><span class="special">&gt;</span> <span class="special">*&gt;</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">&lt;</span><span class="identifier">CString</span><span class="special">&gt;</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">&amp;</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_atl/requirements.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,375 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>ATL Ranges</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="const_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_mfc_atl_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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">ET</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CAutoPtrArray</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CInterfaceArray</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">&gt;</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">&lt;</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">&gt;&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CAtlList</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">ET</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CAutoPtrList</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CHeapPtrList</span><span class="special">&lt;</span><span class="identifier">E</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CInterfaceList</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">&gt;</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">&lt;</span><span class="identifier">I</span><span class="special">,</span><span class="identifier">pi</span><span class="special">&gt;&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CAtlMap</span><span class="special">&lt;</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">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CRBTree</span><span class="special">&lt;</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">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CRBMap</span><span class="special">&lt;</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">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CRBMultiMap</span><span class="special">&lt;</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">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CSimpleStringT</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">b</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CStringT</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">ST</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CFixedStringT</span><span class="special">&lt;</span><span class="identifier">S</span><span class="special">,</span><span class="identifier">n</span><span class="special">&gt;</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">&lt;</span><span class="identifier">S</span><span class="special">&gt;::</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CSimpleArray</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">TE</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
</tbody>
</table></div>
<p>
Other <a class="link" href="../../index.html" title="Chapter&#160;1.&#160;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">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
<code class="computeroutput"><span class="identifier">range_value</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">Ref</span><span class="special">&gt;::</span><span class="identifier">type</span></code>,
<code class="computeroutput"><span class="identifier">range_difference</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">add_pointer</span><span class="special">&lt;</span><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">Ref</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="const_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,125 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>const Ranges</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_mfc_atl_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">&lt;</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</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">&amp;</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">&amp;</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">&amp;</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">&amp;</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">&lt;</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">range_value</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">const</span>
<span class="identifier">Range</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</p>
</td>
<td>
<p>
<code class="computeroutput"><span class="identifier">add_pointer</span><span class="special">&lt;</span><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">range_reference</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="references.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,481 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>MFC Ranges</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="atl_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_mfc_atl_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">&lt;</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">&gt;</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">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CList</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">A</span><span class="special">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CMap</span><span class="special">&lt;</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">&gt;</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">&amp;</span></code>
</p>
</td>
</tr>
<tr>
<td>
<p>
<code class="computeroutput"><span class="identifier">CTypedPtrArray</span><span class="special">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</span><span class="special">*&gt;</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">&lt;</span><span class="identifier">B</span><span class="special">,</span><span class="identifier">T</span><span class="special">*&gt;</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">&lt;</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">*&gt;</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">&lt;</span><span class="identifier">T</span><span class="special">*,</span><span class="identifier">V</span><span class="special">*&gt;</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">&amp;</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">&amp;</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">*&amp;</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">*&amp;</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">&amp;</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">&amp;</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">&amp;</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">*&amp;</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">*&amp;</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">&amp;</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">&lt;</span><span class="keyword">void</span><span class="special">*,</span><span class="identifier">WORD</span><span class="special">&gt;</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">&lt;</span><span class="keyword">void</span><span class="special">*,</span><span class="keyword">void</span><span class="special">*&gt;</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">&lt;</span><span class="identifier">String</span><span class="special">,</span><span class="identifier">CObject</span><span class="special">*&gt;</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">&amp;</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">&lt;</span><span class="identifier">WORD</span><span class="special">,</span><span class="identifier">CObject</span><span class="special">*&gt;</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">&lt;</span><span class="identifier">WORD</span><span class="special">,</span><span class="keyword">void</span><span class="special">*&gt;</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">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
<code class="computeroutput"><span class="identifier">range_value</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">remove_const</span><span class="special">&lt;</span><span class="identifier">Ref</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">type</span></code>,
<code class="computeroutput"><span class="identifier">range_difference</span><span class="special">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">Range</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">add_pointer</span><span class="special">&lt;</span><span class="identifier">remove_reference</span><span class="special">&lt;</span><span class="identifier">Ref</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="atl_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,57 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>References</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../upgrade.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_mfc_atl_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&#160;1.&#160;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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../upgrade.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,52 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Requirements</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;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="../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_mfc_atl_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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mfc_atl.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mfc_ranges.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,92 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Portability</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="faq.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_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/concept_implementation/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/concept_implementation/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/concept_implementation/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="reference/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/concept_implementation/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/concept_implementation/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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="faq.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,97 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Reference</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../index.html" title="Chapter&#160;1.&#160;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="../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference/overview.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_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/concept_implementation.html">Range concept
implementation</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="reference/concept_implementation/synopsis.html">Synopsis</a></span></dt>
<dt><span class="section"><a href="reference/concept_implementation/semantics.html">Semantics</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/introduction.html">Introduction
and motivation</a></span></dt>
<dt><span class="section"><a href="reference/adaptors/general_requirements.html">General
Requirements</a></span></dt>
<dt><span class="section"><a href="reference/adaptors/reference.html">Reference</a></span></dt>
</dl></dd>
<dt><span class="section"><a href="reference/algorithms.html">Range Algorithms</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="reference/algorithms/introduction.html">Introduction
and motivation</a></span></dt>
<dt><span class="section"><a href="reference/algorithms/mutating.html">Mutating algorithms</a></span></dt>
<dt><span class="section"><a href="reference/algorithms/non_mutating.html">Non-mutating
algorithms</a></span></dt>
<dt><span class="section"><a href="reference/algorithms/set.html">Set algorithms</a></span></dt>
<dt><span class="section"><a href="reference/algorithms/heap.html">Heap algorithms</a></span></dt>
<dt><span class="section"><a href="reference/algorithms/permutation.html">Permutation
algorithms</a></span></dt>
<dt><span class="section"><a href="reference/algorithms/new.html">New algorithms</a></span></dt>
<dt><span class="section"><a href="reference/algorithms/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/any_range.html">any_range</a></span></dt>
<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/utilities.html">Utilities</a></span></dt>
<dd><dl>
<dt><span class="section"><a href="reference/utilities/iterator_range.html">Class <code class="computeroutput"><span class="identifier">iterator_range</span></code></a></span></dt>
<dt><span class="section"><a href="reference/utilities/sub_range.html">Class <code class="computeroutput"><span class="identifier">sub_range</span></code></a></span></dt>
<dt><span class="section"><a href="reference/utilities/join.html">Function join</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference/overview.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,51 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Range Adaptors</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="concept_implementation/semantics/functions.html" title="Functions">
<link rel="next" href="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="../../../../../../libs/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="concept_implementation/semantics/functions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors/introduction.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_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/introduction.html">Introduction
and motivation</a></span></dt>
<dt><span class="section"><a href="adaptors/general_requirements.html">General
Requirements</a></span></dt>
<dt><span class="section"><a href="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 &#169; 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="concept_implementation/semantics/functions.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="adaptors/introduction.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,142 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>General Requirements</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../adaptors.html" title="Range Adaptors">
<link rel="prev" href="introduction.html" title="Introduction and motivation">
<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="../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_general_requirements">
<div class="titlepage"><div><div><h4 class="title">
<a name="range.reference.adaptors.general_requirements"></a><a class="link" href="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">&lt;</span><span class="identifier">R</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">R</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">R</span><span class="special">&gt;::</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,276 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Introduction and motivation</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;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="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="../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="general_requirements.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_introduction">
<div class="titlepage"><div><div><h4 class="title">
<a name="range.reference.adaptors.introduction"></a><a class="link" href="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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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>
<h6>
<a name="range.reference.adaptors.introduction.h0"></a>
<span><a name="range.reference.adaptors.introduction.composition_of_adaptors"></a></span><a class="link" href="introduction.html#range.reference.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>
<h6>
<a name="range.reference.adaptors.introduction.h1"></a>
<span><a name="range.reference.adaptors.introduction.range_adaptor_alternative_to_copy_if_algorithm"></a></span><a class="link" href="introduction.html#range.reference.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>
<h6>
<a name="range.reference.adaptors.introduction.h2"></a>
<span><a name="range.reference.adaptors.introduction.range_adaptor_alternative_to_count_if_algorithm"></a></span><a class="link" href="introduction.html#range.reference.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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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> <span class="identifier">new_value</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="general_requirements.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,62 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Reference</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../adaptors.html" title="Range Adaptors">
<link rel="prev" href="general_requirements.html" title="General Requirements">
<link rel="next" href="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="../../../../../../../libs/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="general_requirements.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference/adjacent_filtered.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference">
<div class="titlepage"><div><div><h4 class="title">
<a name="range.reference.adaptors.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="reference/adjacent_filtered.html">adjacent_filtered</a></span></dt>
<dt><span class="section"><a href="reference/copied.html">copied</a></span></dt>
<dt><span class="section"><a href="reference/filtered.html">filtered</a></span></dt>
<dt><span class="section"><a href="reference/indexed.html">indexed</a></span></dt>
<dt><span class="section"><a href="reference/indirected.html">indirected</a></span></dt>
<dt><span class="section"><a href="reference/map_keys.html">map_keys</a></span></dt>
<dt><span class="section"><a href="reference/map_values.html">map_values</a></span></dt>
<dt><span class="section"><a href="reference/replaced.html">replaced</a></span></dt>
<dt><span class="section"><a href="reference/replaced_if.html">replaced_if</a></span></dt>
<dt><span class="section"><a href="reference/reversed.html">reversed</a></span></dt>
<dt><span class="section"><a href="reference/sliced.html">sliced</a></span></dt>
<dt><span class="section"><a href="reference/strided.html">strided</a></span></dt>
<dt><span class="section"><a href="reference/type_erased.html">type_erased</a></span></dt>
<dt><span class="section"><a href="reference/tokenized.html">tokenized</a></span></dt>
<dt><span class="section"><a href="reference/transformed.html">transformed</a></span></dt>
<dt><span class="section"><a href="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 &#169; 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="general_requirements.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../adaptors.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference/adjacent_filtered.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,160 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>adjacent_filtered</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="../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="../../../../../../../../libs/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="../reference.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="copied.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_adjacent_filtered">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
Pass Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">adjacent_filtered_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The minimum
of the range category of <code class="computeroutput"><span class="identifier">rng</span></code>
and <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_adjacent_filtered_adjacent_filtered_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.adjacent_filtered.adjacent_filtered_example"></a><a class="link" href="adjacent_filtered.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">functional</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;()),</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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="../reference.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="copied.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,156 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>copied</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="filtered.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_copied">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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">&lt;=</span> <span class="identifier">n</span>
<span class="special">&amp;&amp;</span> <span class="identifier">n</span>
<span class="special">&lt;=</span> <span class="identifier">m</span>
<span class="special">&amp;&amp;</span> <span class="identifier">m</span>
<span class="special">&lt;</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> <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
Access Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
Access Range</a>
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_copied_copied_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.copied.copied_example"></a><a class="link" href="copied.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="filtered.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,164 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>filtered</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_filtered">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward
Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filtered_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The minimum
of the range category of <code class="computeroutput"><span class="identifier">rng</span></code>
and <a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
Range</a>
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_filtered_filtered_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.filtered.filtered_example"></a><a class="link" href="filtered.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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>
</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,173 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>indexed</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indirected.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_indexed">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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><span class="special">(</span><span class="identifier">start_index</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">index</span><span class="special">(</span><span class="identifier">rng</span><span class="special">,</span>
<span class="identifier">start_index</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> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
Pass Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">indexed_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_indexed_indexed_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.indexed.indexed_example"></a><a class="link" href="indexed.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Iterator</span><span class="special">&gt;</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">&lt;&lt;</span> <span class="string">"Element = "</span> <span class="special">&lt;&lt;</span> <span class="special">*</span><span class="identifier">it</span> <span class="special">&lt;&lt;</span> <span class="string">" Index = "</span> <span class="special">&lt;&lt;</span> <span class="identifier">it</span><span class="special">.</span><span class="identifier">index</span><span class="special">()</span> <span class="special">&lt;&lt;</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">&lt;</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">&gt;</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">&amp;</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">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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indirected.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,156 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>indirected</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="map_keys.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_indirected">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
Pass Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">indirected_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_indirected_indirected_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.indirected.indirected_example"></a><a class="link" href="indirected.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;</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">&lt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="map_keys.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,156 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>map_keys</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="map_values.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_map_keys">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
Pass Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">select_first_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>.
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_map_keys_map_keys_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.map_keys.map_keys_example"></a><a class="link" href="map_keys.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="map_values.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,158 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>map_values</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replaced.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_map_values">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
Pass Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> for constant
ranges, <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">select_second_const</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
otherwise <code class="computeroutput"><span class="identifier">boost</span><span class="special">:</span><span class="identifier">select_second_mutable</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>.
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_map_values_map_values_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.map_values.map_values_example"></a><a class="link" href="map_values.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">,</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replaced.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,172 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>replaced</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replaced_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_replaced">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward
Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">replaced_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>.
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_replaced_replaced_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.replaced.replaced_example"></a><a class="link" href="replaced.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replaced_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,173 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>replaced_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reversed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_replaced_if">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward
Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">replaced_if_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>.
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_replaced_if_replaced_if_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.replaced_if.replaced_if_example"></a><a class="link" href="replaced_if.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reversed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,147 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>reversed</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sliced.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_reversed">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/bidirectional_range.html" title="Bidirectional Range">Bidirectional
Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">reversed_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>.
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_reversed_reversed_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.reversed.reversed_example"></a><a class="link" href="reversed.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sliced.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,157 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>sliced</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="strided.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_sliced">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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">&lt;=</span> <span class="identifier">n</span>
<span class="special">&amp;&amp;</span> <span class="identifier">n</span>
<span class="special">&lt;=</span> <span class="identifier">m</span>
<span class="special">&amp;&amp;</span> <span class="identifier">m</span>
<span class="special">&lt;</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> <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
Access Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">sliced_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
Access Range</a>
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_sliced_sliced_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.sliced.sliced_example"></a><a class="link" href="sliced.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="strided.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,149 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>strided</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="sliced.html" title="sliced">
<link rel="next" href="type_erased.html" title="type_erased">
</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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="type_erased.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_strided">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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">&lt;=</span> <span class="identifier">n</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> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
Pass Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>.
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_strided_strided_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.strided.strided_example"></a><a class="link" href="strided.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="type_erased.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,197 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>tokenized</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="type_erased.html" title="type_erased">
<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="../../../../../../../../libs/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="type_erased.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transformed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_tokenized">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.adaptors.reference.tokenized"></a><a class="link" href="tokenized.html" title="tokenized">tokenized</a>
</h5></div></div></div>
<div class="toc"><dl><dt><span class="section"><a href="tokenized.html#range.reference.adaptors.reference.tokenized.tokenized_example">tokenized_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>
</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">&lt;</span><span class="identifier">decltype</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;::</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">&lt;</span><span class="identifier">T</span><span class="special">&gt;</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> <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
Access Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tokenized_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> <a class="link" href="../../../concepts/random_access_range.html" title="Random Access Range">Random
Access Range</a>
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_tokenized_tokenized_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.tokenized.tokenized_example"></a><a class="link" href="tokenized.html#range.reference.adaptors.reference.tokenized.tokenized_example" title="tokenized_example">tokenized_example</a>
</h6></div></div></div>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">tokenized</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">sub_match</span><span class="special">&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">iterator</span> <span class="special">&gt;</span> <span class="identifier">match_type</span><span class="special">;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">input</span> <span class="special">=</span> <span class="string">" a b c d e f g hijklmnopqrstuvwxyz"</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">tokenized</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">regex</span><span class="special">(</span><span class="string">"\\w+"</span><span class="special">)),</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special">&lt;</span><span class="identifier">match_type</span><span class="special">&gt;(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span><span class="special">,</span> <span class="string">"\n"</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">a</span>
<span class="identifier">b</span>
<span class="identifier">c</span>
<span class="identifier">d</span>
<span class="identifier">e</span>
<span class="identifier">f</span>
<span class="identifier">g</span>
<span class="identifier">hijklmnopqrstuvwxyz</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 &#169; 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="type_erased.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transformed.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,166 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>transformed</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="uniqued.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_transformed">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
Pass Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transformed_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The range
category of <code class="computeroutput"><span class="identifier">rng</span></code>.
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_transformed_transformed_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.transformed.transformed_example"></a><a class="link" href="transformed.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="uniqued.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,304 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>type_erased</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="strided.html" title="strided">
<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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tokenized.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_type_erased">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.adaptors.reference.type_erased"></a><a class="link" href="type_erased.html" title="type_erased">type_erased</a>
</h5></div></div></div>
<div class="toc"><dl><dt><span class="section"><a href="type_erased.html#range.reference.adaptors.reference.type_erased.type_erased_example">type-erased
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">type_erased</span><span class="special">&lt;</span><span class="identifier">Value</span><span class="special">,</span>
<span class="identifier">Traversal</span><span class="special">,</span>
<span class="identifier">Reference</span><span class="special">,</span>
<span class="identifier">Difference</span><span class="special">,</span>
<span class="identifier">Buffer</span><span class="special">&gt;()</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">type_erase</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">type_erased</span><span class="special">&lt;</span><span class="identifier">Value</span><span class="special">,</span>
<span class="identifier">Traversal</span><span class="special">,</span>
<span class="identifier">Reference</span><span class="special">,</span>
<span class="identifier">Difference</span><span class="special">,</span>
<span class="identifier">Buffer</span><span class="special">&gt;)</span></code>
</p>
</td>
</tr>
</tbody>
</table></div>
<p>
Please note that it is frequently unnecessary to use the <code class="computeroutput"><span class="identifier">type_erased</span></code> adaptor. It is often better
to use the implicit conversion to <code class="computeroutput"><span class="identifier">any_range</span></code>.
</p>
<p>
Let <code class="computeroutput"><span class="identifier">Rng</span></code> be the type of
<code class="computeroutput"><span class="identifier">rng</span></code>.
</p>
<div class="itemizedlist"><ul class="itemizedlist" type="disc">
<li class="listitem">
<span class="bold"><strong>Template parameters:</strong></span>
<div class="itemizedlist"><ul class="itemizedlist" type="circle">
<li class="listitem">
<code class="computeroutput"><span class="identifier">Value</span></code> is the
<code class="computeroutput"><span class="identifier">value_type</span></code>
for the <code class="computeroutput"><span class="identifier">any_range</span></code>.
If this is set to boost::use_default, <code class="computeroutput"><span class="identifier">Value</span></code>
will be calculated from the range type when the adaptor is
applied.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">Traversal</span></code> is
the tag used to identify the traversal of the resultant range.
Frequently it is desirable to set a traversal category lower
than the source container or range to maximize the number of
ranges that can convert to the <code class="computeroutput"><span class="identifier">any_range</span></code>.
If this is left as boost::use_default then <code class="computeroutput"><span class="identifier">Traversal</span></code>
will be <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_traversal</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">Rng</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">Reference</span></code> is
the <code class="computeroutput"><span class="identifier">reference</span></code>
for the <code class="computeroutput"><span class="identifier">any_range</span></code>.
<code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span></code> will equate to
<code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">range_reference</span><span class="special">&lt;</span><span class="identifier">Rng</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">Difference</span></code>
is the <code class="computeroutput"><span class="identifier">difference_type</span></code>
for the any_range. <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span></code>
will equate to <code class="computeroutput"><span class="keyword">typename</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_difference</span><span class="special">&lt;</span><span class="identifier">Rng</span><span class="special">&gt;::</span><span class="identifier">type</span></code>
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">Buffer</span></code> is the
storage used to allocate the underlying iterator wrappers.
This can typically be ignored, but is available as a template
parameter for customization. Buffer must be a model of the
<code class="computeroutput"><span class="identifier">AnyIteratorBufferConcept</span></code>.
</li>
</ul></div>
</li>
<li class="listitem">
<span class="bold"><strong>Precondition:</strong></span> <code class="computeroutput"><span class="identifier">Traversal</span></code>
is one of <code class="computeroutput"><span class="special">{</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">single_pass_traversal_tag</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">bidirectional_traversal_tag</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">random_access_traversal_tag</span>
<span class="special">}</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returns:</strong></span> The returned value is the
same as <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">any_range_type_generator</span><span class="special">&lt;</span> <span class="identifier">Rng</span><span class="special">,</span> <span class="identifier">Value</span><span class="special">,</span> <span class="identifier">Traversal</span><span class="special">,</span> <span class="identifier">Reference</span><span class="special">,</span> <span class="identifier">Difference</span><span class="special">,</span> <span class="identifier">Buffer</span>
<span class="special">&gt;</span></code> that represents <code class="computeroutput"><span class="identifier">rng</span></code> in a type-erased manner.
</li>
<li class="listitem">
<span class="bold"><strong>Range Category:</strong></span> <a class="link" href="../../../concepts/single_pass_range.html" title="Single Pass Range">Single
Pass Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> if <code class="computeroutput"><span class="identifier">Traversal</span></code> was specified as <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span></code> then <code class="computeroutput"><span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_traversal</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">Rng</span><span class="special">&gt;::</span><span class="identifier">type</span><span class="special">&gt;::</span><span class="identifier">type</span></code>,
otherwise <code class="computeroutput"><span class="identifier">Traversal</span></code>.
</li>
</ul></div>
<h6>
<a name="range.reference.adaptors.reference.type_erased.h0"></a>
<span><a name="range.reference.adaptors.reference.type_erased.anyiteratorbufferconcept"></a></span><a class="link" href="type_erased.html#range.reference.adaptors.reference.type_erased.anyiteratorbufferconcept">AnyIteratorBufferConcept</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">AnyIteratorBufferConcept</span>
<span class="special">{</span>
<span class="keyword">public</span><span class="special">:</span>
<span class="identifier">AnyIteratorBufferConcept</span><span class="special">();</span>
<span class="special">~</span><span class="identifier">AnyIteratorBufferConcept</span><span class="special">();</span>
<span class="comment">// bytes is the requested size to allocate. This function</span>
<span class="comment">// must return a pointer to an adequate area of memory.</span>
<span class="comment">// throws: bad_alloc</span>
<span class="comment">//</span>
<span class="comment">// The buffer will only ever have zero or one</span>
<span class="comment">// outstanding memory allocations.</span>
<span class="keyword">void</span><span class="special">*</span> <span class="identifier">allocate</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">bytes</span><span class="special">);</span>
<span class="comment">// deallocate this buffer</span>
<span class="keyword">void</span> <span class="identifier">deallocate</span><span class="special">();</span>
<span class="special">};</span>
</pre>
<p>
</p>
<div class="section range_reference_adaptors_reference_type_erased_type_erased_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.type_erased.type_erased_example"></a><a class="link" href="type_erased.html#range.reference.adaptors.reference.type_erased.type_erased_example" title="type-erased example">type-erased
example</a>
</h6></div></div></div>
<p>
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</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">type_erased</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">foreach</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">list</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
<span class="comment">// The client interface from an OO perspective merely requires a sequence</span>
<span class="comment">// of integers that can be forward traversed</span>
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">any_range</span><span class="special">&lt;</span>
<span class="keyword">int</span>
<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</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">ptrdiff_t</span>
<span class="special">&gt;</span> <span class="identifier">integer_range</span><span class="special">;</span>
<span class="keyword">namespace</span> <span class="identifier">server</span>
<span class="special">{</span>
<span class="keyword">void</span> <span class="identifier">display_integers</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">integer_range</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">)</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">rng</span><span class="special">,</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">ostream_iterator</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</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">namespace</span> <span class="identifier">client</span>
<span class="special">{</span>
<span class="keyword">void</span> <span class="identifier">run</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="comment">// Under most conditions one would simply use an appropriate</span>
<span class="comment">// any_range as a function parameter. The type_erased adaptor</span>
<span class="comment">// is often superfluous. However because the type_erased</span>
<span class="comment">// adaptor is applied to a range, we can use default template</span>
<span class="comment">// arguments that are generated in conjunction with the</span>
<span class="comment">// range type to which we are applying the adaptor.</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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="comment">// Note that this call is to a non-template function</span>
<span class="identifier">server</span><span class="special">::</span><span class="identifier">display_integers</span><span class="special">(</span><span class="identifier">input</span><span class="special">);</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</span> <span class="identifier">input2</span><span class="special">;</span>
<span class="identifier">input2</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="comment">// Note that this call is to the same non-tempate function</span>
<span class="identifier">server</span><span class="special">::</span><span class="identifier">display_integers</span><span class="special">(</span><span class="identifier">input2</span><span class="special">);</span>
<span class="identifier">input2</span><span class="special">.</span><span class="identifier">clear</span><span class="special">();</span>
<span class="identifier">input2</span> <span class="special">+=</span> <span class="number">11</span><span class="special">,</span><span class="number">12</span><span class="special">,</span><span class="number">13</span><span class="special">,</span><span class="number">14</span><span class="special">,</span><span class="number">15</span><span class="special">;</span>
<span class="comment">// Calling using the adaptor looks like this:</span>
<span class="comment">// Notice that here I have a type_erased that would be a</span>
<span class="comment">// bidirectional_traversal_tag, but this is convertible</span>
<span class="comment">// to the forward_traversal_tag equivalent hence this</span>
<span class="comment">// works.</span>
<span class="identifier">server</span><span class="special">::</span><span class="identifier">display_integers</span><span class="special">(</span><span class="identifier">input2</span> <span class="special">|</span> <span class="identifier">type_erased</span><span class="special">&lt;&gt;());</span>
<span class="comment">// However we may simply wish to define an adaptor that</span>
<span class="comment">// takes a range and makes it into an appropriate</span>
<span class="comment">// forward_traversal any_range...</span>
<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adaptors</span><span class="special">::</span><span class="identifier">type_erased</span><span class="special">&lt;</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span>
<span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
<span class="special">&gt;</span> <span class="identifier">type_erased_forward</span><span class="special">;</span>
<span class="comment">// This adaptor can turn other containers with different</span>
<span class="comment">// value_types and reference_types into the appropriate</span>
<span class="comment">// any_range.</span>
<span class="identifier">server</span><span class="special">::</span><span class="identifier">display_integers</span><span class="special">(</span><span class="identifier">input2</span> <span class="special">|</span> <span class="identifier">type_erased_forward</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="identifier">client</span><span class="special">::</span><span class="identifier">run</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><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="number">11</span><span class="special">,</span><span class="number">12</span><span class="special">,</span><span class="number">13</span><span class="special">,</span><span class="number">14</span><span class="special">,</span><span class="number">15</span><span class="special">,</span>
<span class="number">11</span><span class="special">,</span><span class="number">12</span><span class="special">,</span><span class="number">13</span><span class="special">,</span><span class="number">14</span><span class="special">,</span><span class="number">15</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tokenized.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,152 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>uniqued</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="transformed.html" title="transformed">
<link rel="next" href="../../algorithms.html" title="Range 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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../algorithms.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_adaptors_reference_uniqued">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.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.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> <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward
Range</a>
</li>
<li class="listitem">
<span class="bold"><strong>Range Return Type:</strong></span> <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uniqued_range</span><span class="special">&lt;</span><span class="identifier">typeof</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)&gt;</span></code>
</li>
<li class="listitem">
<span class="bold"><strong>Returned Range Category:</strong></span> The minimum
of the range concept of <code class="computeroutput"><span class="identifier">rng</span></code>
and <a class="link" href="../../../concepts/forward_range.html" title="Forward Range">Forward Range</a>.
</li>
</ul></div>
<div class="section range_reference_adaptors_reference_uniqued_uniqued_example">
<div class="titlepage"><div><div><h6 class="title">
<a name="range.reference.adaptors.reference.uniqued.uniqued_example"></a><a class="link" href="uniqued.html#range.reference.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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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><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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../algorithms.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,57 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Range Algorithms</title>
<link rel="stylesheet" href="../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../reference.html" title="Reference">
<link rel="prev" href="adaptors/reference/uniqued.html" title="uniqued">
<link rel="next" href="algorithms/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="../../../../../../libs/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/uniqued.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithms/introduction.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms">
<div class="titlepage"><div><div><h3 class="title">
<a name="range.reference.algorithms"></a><a class="link" href="algorithms.html" title="Range Algorithms">Range Algorithms</a>
</h3></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="algorithms/introduction.html">Introduction
and motivation</a></span></dt>
<dt><span class="section"><a href="algorithms/mutating.html">Mutating algorithms</a></span></dt>
<dt><span class="section"><a href="algorithms/non_mutating.html">Non-mutating
algorithms</a></span></dt>
<dt><span class="section"><a href="algorithms/set.html">Set algorithms</a></span></dt>
<dt><span class="section"><a href="algorithms/heap.html">Heap algorithms</a></span></dt>
<dt><span class="section"><a href="algorithms/permutation.html">Permutation
algorithms</a></span></dt>
<dt><span class="section"><a href="algorithms/new.html">New algorithms</a></span></dt>
<dt><span class="section"><a href="algorithms/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 &#169; 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/uniqued.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="algorithms/introduction.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,50 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Heap algorithms</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../algorithms.html" title="Range Algorithms">
<link rel="prev" href="set/set_symmetric_difference.html" title="set_symmetric_difference">
<link rel="next" href="heap/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="../../../../../../../libs/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/set_symmetric_difference.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="heap/push_heap.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_heap">
<div class="titlepage"><div><div><h4 class="title">
<a name="range.reference.algorithms.heap"></a><a class="link" href="heap.html" title="Heap algorithms">Heap algorithms</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="heap/push_heap.html">push_heap</a></span></dt>
<dt><span class="section"><a href="heap/pop_heap.html">pop_heap</a></span></dt>
<dt><span class="section"><a href="heap/make_heap.html">make_heap</a></span></dt>
<dt><span class="section"><a href="heap/sort_heap.html">sort_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 &#169; 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/set_symmetric_difference.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="heap/push_heap.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,143 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>make_heap</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../heap.html" title="Heap algorithms">
<link rel="prev" href="pop_heap.html" title="pop_heap">
<link rel="next" href="sort_heap.html" title="sort_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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sort_heap.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_heap_make_heap">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.heap.make_heap"></a><a class="link" href="make_heap.html" title="make_heap">make_heap</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.heap.make_heap.h0"></a>
<span><a name="range.reference.algorithms.heap.make_heap.prototype"></a></span><a class="link" href="make_heap.html#range.reference.algorithms.heap.make_heap.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">make_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">make_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">make_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">make_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.heap.make_heap.h1"></a>
<span><a name="range.reference.algorithms.heap.make_heap.description"></a></span><a class="link" href="make_heap.html#range.reference.algorithms.heap.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">&lt;</span></code> in the non-predicate versions, and
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
the predicate versions.
</p>
<h6>
<a name="range.reference.algorithms.heap.make_heap.h2"></a>
<span><a name="range.reference.algorithms.heap.make_heap.definition"></a></span><a class="link" href="make_heap.html#range.reference.algorithms.heap.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>
<h6>
<a name="range.reference.algorithms.heap.make_heap.h3"></a>
<span><a name="range.reference.algorithms.heap.make_heap.requirements"></a></span><a class="link" href="make_heap.html#range.reference.algorithms.heap.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>
<h6>
<a name="range.reference.algorithms.heap.make_heap.h4"></a>
<span><a name="range.reference.algorithms.heap.make_heap.complexity"></a></span><a class="link" href="make_heap.html#range.reference.algorithms.heap.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sort_heap.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,157 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>pop_heap</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../heap.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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="make_heap.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_heap_pop_heap">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.heap.pop_heap"></a><a class="link" href="pop_heap.html" title="pop_heap">pop_heap</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.heap.pop_heap.h0"></a>
<span><a name="range.reference.algorithms.heap.pop_heap.prototype"></a></span><a class="link" href="pop_heap.html#range.reference.algorithms.heap.pop_heap.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">pop_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">pop_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">pop_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">pop_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.heap.pop_heap.h1"></a>
<span><a name="range.reference.algorithms.heap.pop_heap.description"></a></span><a class="link" href="pop_heap.html#range.reference.algorithms.heap.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 therefore the
largest element is <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></code>).
</p>
<p>
The ordering relationship is determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code> in the non-predicate versions, and
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
the predicate versions.
</p>
<h6>
<a name="range.reference.algorithms.heap.pop_heap.h2"></a>
<span><a name="range.reference.algorithms.heap.pop_heap.definition"></a></span><a class="link" href="pop_heap.html#range.reference.algorithms.heap.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>
<h6>
<a name="range.reference.algorithms.heap.pop_heap.h3"></a>
<span><a name="range.reference.algorithms.heap.pop_heap.requirements"></a></span><a class="link" href="pop_heap.html#range.reference.algorithms.heap.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>
<h6>
<a name="range.reference.algorithms.heap.pop_heap.h4"></a>
<span><a name="range.reference.algorithms.heap.pop_heap.precondition_"></a></span><a class="link" href="pop_heap.html#range.reference.algorithms.heap.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>
<h6>
<a name="range.reference.algorithms.heap.pop_heap.h5"></a>
<span><a name="range.reference.algorithms.heap.pop_heap.complexity"></a></span><a class="link" href="pop_heap.html#range.reference.algorithms.heap.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="make_heap.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,155 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>push_heap</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../heap.html" title="Heap algorithms">
<link rel="prev" href="../heap.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="../../../../../../../../libs/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.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pop_heap.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_heap_push_heap">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.heap.push_heap"></a><a class="link" href="push_heap.html" title="push_heap">push_heap</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.heap.push_heap.h0"></a>
<span><a name="range.reference.algorithms.heap.push_heap.prototype"></a></span><a class="link" href="push_heap.html#range.reference.algorithms.heap.push_heap.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">push_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">push_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">push_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">push_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.heap.push_heap.h1"></a>
<span><a name="range.reference.algorithms.heap.push_heap.description"></a></span><a class="link" href="push_heap.html#range.reference.algorithms.heap.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">&lt;</span></code> in the non-predicate versions, and
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
the predicate versions.
</p>
<h6>
<a name="range.reference.algorithms.heap.push_heap.h2"></a>
<span><a name="range.reference.algorithms.heap.push_heap.definition"></a></span><a class="link" href="push_heap.html#range.reference.algorithms.heap.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>
<h6>
<a name="range.reference.algorithms.heap.push_heap.h3"></a>
<span><a name="range.reference.algorithms.heap.push_heap.requirements"></a></span><a class="link" href="push_heap.html#range.reference.algorithms.heap.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>
<h6>
<a name="range.reference.algorithms.heap.push_heap.h4"></a>
<span><a name="range.reference.algorithms.heap.push_heap.precondition_"></a></span><a class="link" href="push_heap.html#range.reference.algorithms.heap.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>
<h6>
<a name="range.reference.algorithms.heap.push_heap.h5"></a>
<span><a name="range.reference.algorithms.heap.push_heap.complexity"></a></span><a class="link" href="push_heap.html#range.reference.algorithms.heap.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 &#169; 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.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pop_heap.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,152 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>sort_heap</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../heap.html" title="Heap algorithms">
<link rel="prev" href="make_heap.html" title="make_heap">
<link rel="next" href="../permutation.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="../../../../../../../../libs/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="make_heap.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../permutation.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_heap_sort_heap">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.heap.sort_heap"></a><a class="link" href="sort_heap.html" title="sort_heap">sort_heap</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.heap.sort_heap.h0"></a>
<span><a name="range.reference.algorithms.heap.sort_heap.prototype"></a></span><a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">sort_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">sort_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">sort_heap</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">sort_heap</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.heap.sort_heap.h1"></a>
<span><a name="range.reference.algorithms.heap.sort_heap.description"></a></span><a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">sort_heap</span></code> turns a heap
into a sorted range.
</p>
<p>
The ordering relationship is determined by using <code class="computeroutput"><span class="keyword">operator</span><span class="special">&lt;</span></code> in the non-predicate versions, and
by evaluating <code class="computeroutput"><span class="identifier">pred</span></code> in
the predicate versions.
</p>
<h6>
<a name="range.reference.algorithms.heap.sort_heap.h2"></a>
<span><a name="range.reference.algorithms.heap.sort_heap.definition"></a></span><a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_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>
<h6>
<a name="range.reference.algorithms.heap.sort_heap.h3"></a>
<span><a name="range.reference.algorithms.heap.sort_heap.requirements"></a></span><a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_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>
<h6>
<a name="range.reference.algorithms.heap.sort_heap.h4"></a>
<span><a name="range.reference.algorithms.heap.sort_heap.precondition_"></a></span><a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.precondition_">Precondition:</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">rng</span></code> is a heap.
</p>
<h6>
<a name="range.reference.algorithms.heap.sort_heap.h5"></a>
<span><a name="range.reference.algorithms.heap.sort_heap.complexity"></a></span><a class="link" href="sort_heap.html#range.reference.algorithms.heap.sort_heap.complexity">Complexity</a>
</h6>
<p>
At most <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>
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 &#169; 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="make_heap.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../heap.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../permutation.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,254 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Introduction and motivation</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../algorithms.html" title="Range Algorithms">
<link rel="prev" href="../algorithms.html" title="Range Algorithms">
<link rel="next" href="mutating.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="../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mutating.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_introduction">
<div class="titlepage"><div><div><h4 class="title">
<a name="range.reference.algorithms.introduction"></a><a class="link" href="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">&lt;</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">&gt;</span>
<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">vector</span><span class="special">&gt;</span>
<span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_found</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_begin_found</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_begin_next</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_found_end</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_next_end</span><span class="special">&gt;(</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_begin_end</span><span class="special">&gt;(</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_found_end</span><span class="special">&gt;(</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">&lt;</span><span class="keyword">int</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">return_next_end</span><span class="special">&gt;(</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">end</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mutating.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,76 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Mutating algorithms</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../algorithms.html" title="Range Algorithms">
<link rel="prev" href="introduction.html" title="Introduction and motivation">
<link rel="next" href="mutating/copy.html" title="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="../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mutating/copy.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating">
<div class="titlepage"><div><div><h4 class="title">
<a name="range.reference.algorithms.mutating"></a><a class="link" href="mutating.html" title="Mutating algorithms">Mutating algorithms</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="mutating/copy.html">copy</a></span></dt>
<dt><span class="section"><a href="mutating/copy_backward.html">copy_backward</a></span></dt>
<dt><span class="section"><a href="mutating/fill.html">fill</a></span></dt>
<dt><span class="section"><a href="mutating/fill_n.html">fill_n</a></span></dt>
<dt><span class="section"><a href="mutating/generate.html">generate</a></span></dt>
<dt><span class="section"><a href="mutating/inplace_merge.html">inplace_merge</a></span></dt>
<dt><span class="section"><a href="mutating/merge.html">merge</a></span></dt>
<dt><span class="section"><a href="mutating/nth_element.html">nth_element</a></span></dt>
<dt><span class="section"><a href="mutating/partial_sort.html">partial_sort</a></span></dt>
<dt><span class="section"><a href="mutating/partition.html">partition</a></span></dt>
<dt><span class="section"><a href="mutating/random_shuffle.html">random_shuffle</a></span></dt>
<dt><span class="section"><a href="mutating/remove.html">remove</a></span></dt>
<dt><span class="section"><a href="mutating/remove_copy.html">remove_copy</a></span></dt>
<dt><span class="section"><a href="mutating/remove_copy_if.html">remove_copy_if</a></span></dt>
<dt><span class="section"><a href="mutating/remove_if.html">remove_if</a></span></dt>
<dt><span class="section"><a href="mutating/replace.html">replace</a></span></dt>
<dt><span class="section"><a href="mutating/replace_copy.html">replace_copy</a></span></dt>
<dt><span class="section"><a href="mutating/replace_copy_if.html">replace_copy_if</a></span></dt>
<dt><span class="section"><a href="mutating/replace_if.html">replace_if</a></span></dt>
<dt><span class="section"><a href="mutating/reverse.html">reverse</a></span></dt>
<dt><span class="section"><a href="mutating/reverse_copy.html">reverse_copy</a></span></dt>
<dt><span class="section"><a href="mutating/rotate.html">rotate</a></span></dt>
<dt><span class="section"><a href="mutating/rotate_copy.html">rotate_copy</a></span></dt>
<dt><span class="section"><a href="mutating/sort.html">sort</a></span></dt>
<dt><span class="section"><a href="mutating/stable_partition.html">stable_partition</a></span></dt>
<dt><span class="section"><a href="mutating/stable_sort.html">stable_sort</a></span></dt>
<dt><span class="section"><a href="mutating/swap_ranges.html">swap_ranges</a></span></dt>
<dt><span class="section"><a href="mutating/transform.html">transform</a></span></dt>
<dt><span class="section"><a href="mutating/unique.html">unique</a></span></dt>
<dt><span class="section"><a href="mutating/unique_copy.html">unique_copy</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="mutating/copy.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,115 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>copy</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="../mutating.html" title="Mutating algorithms">
<link rel="next" href="copy_backward.html" title="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="../../../../../../../../libs/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="../mutating.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="copy_backward.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_copy">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.copy"></a><a class="link" href="copy.html" title="copy">copy</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.copy.h0"></a>
<span><a name="range.reference.algorithms.mutating.copy.prototype"></a></span><a class="link" href="copy.html#range.reference.algorithms.mutating.copy.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</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">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.copy.h1"></a>
<span><a name="range.reference.algorithms.mutating.copy.description"></a></span><a class="link" href="copy.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.copy.h2"></a>
<span><a name="range.reference.algorithms.mutating.copy.definition"></a></span><a class="link" href="copy.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.copy.h3"></a>
<span><a name="range.reference.algorithms.mutating.copy.requirements"></a></span><a class="link" href="copy.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.copy.h4"></a>
<span><a name="range.reference.algorithms.mutating.copy.precondition_"></a></span><a class="link" href="copy.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.copy.h5"></a>
<span><a name="range.reference.algorithms.mutating.copy.complexity"></a></span><a class="link" href="copy.html#range.reference.algorithms.mutating.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 &#169; 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="../mutating.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="copy_backward.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,124 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>copy_backward</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="copy.html" title="copy">
<link rel="next" href="fill.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="fill.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_copy_backward">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.copy_backward"></a><a class="link" href="copy_backward.html" title="copy_backward">copy_backward</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.copy_backward.h0"></a>
<span><a name="range.reference.algorithms.mutating.copy_backward.prototype"></a></span><a class="link" href="copy_backward.html#range.reference.algorithms.mutating.copy_backward.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</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">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.copy_backward.h1"></a>
<span><a name="range.reference.algorithms.mutating.copy_backward.description"></a></span><a class="link" href="copy_backward.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.copy_backward.h2"></a>
<span><a name="range.reference.algorithms.mutating.copy_backward.definition"></a></span><a class="link" href="copy_backward.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.copy_backward.h3"></a>
<span><a name="range.reference.algorithms.mutating.copy_backward.requirements"></a></span><a class="link" href="copy_backward.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.copy_backward.h4"></a>
<span><a name="range.reference.algorithms.mutating.copy_backward.precondition_"></a></span><a class="link" href="copy_backward.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.copy_backward.h5"></a>
<span><a name="range.reference.algorithms.mutating.copy_backward.complexity"></a></span><a class="link" href="copy_backward.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="fill.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,101 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>fill</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="copy_backward.html" title="copy_backward">
<link rel="next" href="fill_n.html" title="fill_n">
</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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="fill_n.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_fill">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.fill"></a><a class="link" href="fill.html" title="fill">fill</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.fill.h0"></a>
<span><a name="range.reference.algorithms.mutating.fill.prototype"></a></span><a class="link" href="fill.html#range.reference.algorithms.mutating.fill.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">fill</span><span class="special">(</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">val</span> <span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.fill.h1"></a>
<span><a name="range.reference.algorithms.mutating.fill.description"></a></span><a class="link" href="fill.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.fill.h2"></a>
<span><a name="range.reference.algorithms.mutating.fill.definition"></a></span><a class="link" href="fill.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.fill.h3"></a>
<span><a name="range.reference.algorithms.mutating.fill.requirements"></a></span><a class="link" href="fill.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.fill.h4"></a>
<span><a name="range.reference.algorithms.mutating.fill.complexity"></a></span><a class="link" href="fill.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="fill_n.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,101 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>fill_n</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="fill.html" title="fill">
<link rel="next" href="generate.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="generate.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_fill_n">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.fill_n"></a><a class="link" href="fill_n.html" title="fill_n">fill_n</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.fill_n.h0"></a>
<span><a name="range.reference.algorithms.mutating.fill_n.prototype"></a></span><a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Size</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">&gt;</span>
<span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">fill</span><span class="special">(</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Size</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">val</span> <span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.fill_n.h1"></a>
<span><a name="range.reference.algorithms.mutating.fill_n.description"></a></span><a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">fill_n</span></code> assigns the value
<code class="computeroutput"><span class="identifier">val</span></code> to <code class="computeroutput"><span class="identifier">n</span></code> elements in the range <code class="computeroutput"><span class="identifier">rng</span></code> beginning with <code class="computeroutput"><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></code>.
</p>
<h6>
<a name="range.reference.algorithms.mutating.fill_n.h2"></a>
<span><a name="range.reference.algorithms.mutating.fill_n.definition"></a></span><a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.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_n</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.fill_n.h3"></a>
<span><a name="range.reference.algorithms.mutating.fill_n.requirements"></a></span><a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.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>
<h6>
<a name="range.reference.algorithms.mutating.fill_n.h4"></a>
<span><a name="range.reference.algorithms.mutating.fill_n.complexity"></a></span><a class="link" href="fill_n.html#range.reference.algorithms.mutating.fill_n.complexity">Complexity</a>
</h6>
<p>
Linear. Exactly <code class="computeroutput"><span class="identifier">n</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="generate.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,120 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>generate</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="fill_n.html" title="fill_n">
<link rel="next" href="inplace_merge.html" title="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="../../../../../../../../libs/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_n.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="inplace_merge.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_generate">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.generate"></a><a class="link" href="generate.html" title="generate">generate</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.generate.h0"></a>
<span><a name="range.reference.algorithms.mutating.generate.prototype"></a></span><a class="link" href="generate.html#range.reference.algorithms.mutating.generate.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">generate</span><span class="special">(</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">generate</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.generate.h1"></a>
<span><a name="range.reference.algorithms.mutating.generate.description"></a></span><a class="link" href="generate.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.generate.h2"></a>
<span><a name="range.reference.algorithms.mutating.generate.definition"></a></span><a class="link" href="generate.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.generate.h3"></a>
<span><a name="range.reference.algorithms.mutating.generate.requirements"></a></span><a class="link" href="generate.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.generate.h4"></a>
<span><a name="range.reference.algorithms.mutating.generate.precondition_"></a></span><a class="link" href="generate.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.generate.h5"></a>
<span><a name="range.reference.algorithms.mutating.generate.complexity"></a></span><a class="link" href="generate.html#range.reference.algorithms.mutating.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 &#169; 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_n.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="inplace_merge.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,186 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>inplace_merge</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="generate.html" title="generate">
<link rel="next" href="merge.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="merge.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_inplace_merge">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.inplace_merge"></a><a class="link" href="inplace_merge.html" title="inplace_merge">inplace_merge</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.inplace_merge.h0"></a>
<span><a name="range.reference.algorithms.mutating.inplace_merge.prototype"></a></span><a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">&gt;</span>
<span class="identifier">BidirectionalRange</span><span class="special">&amp;</span>
<span class="identifier">inplace_merge</span><span class="special">(</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">BidirectionalRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">middle</span> <span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span>
<span class="identifier">inplace_merge</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">middle</span> <span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">BidirectionalRange</span><span class="special">&amp;</span>
<span class="identifier">inplace_merge</span><span class="special">(</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">BidirectionalRange</span><span class="special">&gt;::</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">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span>
<span class="identifier">inplace_merge</span><span class="special">(</span> <span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&gt;::</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>
<h6>
<a name="range.reference.algorithms.mutating.inplace_merge.h1"></a>
<span><a name="range.reference.algorithms.mutating.inplace_merge.description"></a></span><a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.inplace_merge.h2"></a>
<span><a name="range.reference.algorithms.mutating.inplace_merge.definition"></a></span><a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.inplace_merge.h3"></a>
<span><a name="range.reference.algorithms.mutating.inplace_merge.requirements"></a></span><a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.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">&lt;</span><span class="identifier">BidirectionalRange</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">BidirectionalRange</span><span class="special">&gt;::</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>
<h6>
<a name="range.reference.algorithms.mutating.inplace_merge.h4"></a>
<span><a name="range.reference.algorithms.mutating.inplace_merge.precondition_"></a></span><a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.inplace_merge.precondition_">Precondition:</a>
</h6>
<h6>
<a name="range.reference.algorithms.mutating.inplace_merge.h5"></a>
<span><a name="range.reference.algorithms.mutating.inplace_merge.for_the_non_predicate_version_"></a></span><a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.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">&lt;</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">&lt;</span>
<span class="identifier">x</span></code> is <code class="computeroutput"><span class="keyword">false</span></code>.
</li>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.inplace_merge.h6"></a>
<span><a name="range.reference.algorithms.mutating.inplace_merge.for_the_predicate_version_"></a></span><a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.inplace_merge.h7"></a>
<span><a name="range.reference.algorithms.mutating.inplace_merge.complexity"></a></span><a class="link" href="inplace_merge.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="merge.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,256 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>merge</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="inplace_merge.html" title="inplace_merge">
<link rel="next" href="nth_element.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nth_element.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_merge">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.merge"></a><a class="link" href="merge.html" title="merge">merge</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.merge.h0"></a>
<span><a name="range.reference.algorithms.mutating.merge.prototype"></a></span><a class="link" href="merge.html#range.reference.algorithms.mutating.merge.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">rng1</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&amp;</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">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">rng1</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.merge.h1"></a>
<span><a name="range.reference.algorithms.mutating.merge.description"></a></span><a class="link" href="merge.html#range.reference.algorithms.mutating.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">&lt;()</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">&lt;()</span></code>.
</p>
<h6>
<a name="range.reference.algorithms.mutating.merge.h2"></a>
<span><a name="range.reference.algorithms.mutating.merge.definition"></a></span><a class="link" href="merge.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.merge.h3"></a>
<span><a name="range.reference.algorithms.mutating.merge.requirements"></a></span><a class="link" href="merge.html#range.reference.algorithms.mutating.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">&lt;</span><span class="identifier">SinglePassRange1</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">range_value</span><span class="special">&lt;</span><span class="identifier">SinglePassRange2</span><span class="special">&gt;::</span><span class="identifier">type</span></code>.
</li>
<li class="listitem">
<code class="computeroutput"><span class="identifier">range_value</span><span class="special">&lt;</span><span class="identifier">SinglePassRange1</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">SinglePassRange1</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">SinglePassRange1</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">SinglePassRange1</span><span class="special">&gt;::</span><span class="identifier">type</span></code> is the same as <code class="computeroutput"><span class="identifier">range_value</span><span class="special">&lt;</span><span class="identifier">SinglePassRange2</span><span class="special">&gt;::</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">&lt;</span><span class="identifier">SinglePassRange1</span><span class="special">&gt;::</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>
<h6>
<a name="range.reference.algorithms.mutating.merge.h4"></a>
<span><a name="range.reference.algorithms.mutating.merge.precondition_"></a></span><a class="link" href="merge.html#range.reference.algorithms.mutating.merge.precondition_">Precondition:</a>
</h6>
<h6>
<a name="range.reference.algorithms.mutating.merge.h5"></a>
<span><a name="range.reference.algorithms.mutating.merge.for_the_non_predicate_version_"></a></span><a class="link" href="merge.html#range.reference.algorithms.mutating.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">&lt;</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">&lt;</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>
<h6>
<a name="range.reference.algorithms.mutating.merge.h6"></a>
<span><a name="range.reference.algorithms.mutating.merge.for_the_predicate_version_"></a></span><a class="link" href="merge.html#range.reference.algorithms.mutating.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>
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">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>
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">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>
<h6>
<a name="range.reference.algorithms.mutating.merge.h7"></a>
<span><a name="range.reference.algorithms.mutating.merge.complexity"></a></span><a class="link" href="merge.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nth_element.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,150 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>nth_element</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="merge.html" title="merge">
<link rel="next" href="partial_sort.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="partial_sort.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_nth_element">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.nth_element"></a><a class="link" href="nth_element.html" title="nth_element">nth_element</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.nth_element.h0"></a>
<span><a name="range.reference.algorithms.mutating.nth_element.prototype"></a></span><a class="link" href="nth_element.html#range.reference.algorithms.mutating.nth_element.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">nth_element</span><span class="special">(</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">RandomAccessRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">nth</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">nth_element</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">nth</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">nth_element</span><span class="special">(</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">RandomAccessRange</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">nth_element</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;::</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>
<h6>
<a name="range.reference.algorithms.mutating.nth_element.h1"></a>
<span><a name="range.reference.algorithms.mutating.nth_element.description"></a></span><a class="link" href="nth_element.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.nth_element.h2"></a>
<span><a name="range.reference.algorithms.mutating.nth_element.definition"></a></span><a class="link" href="nth_element.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.nth_element.h3"></a>
<span><a name="range.reference.algorithms.mutating.nth_element.requirements"></a></span><a class="link" href="nth_element.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.nth_element.h4"></a>
<span><a name="range.reference.algorithms.mutating.nth_element.complexity"></a></span><a class="link" href="nth_element.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="partial_sort.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,155 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>partial_sort</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="nth_element.html" title="nth_element">
<link rel="next" href="partition.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="partition.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_partial_sort">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.partial_sort"></a><a class="link" href="partial_sort.html" title="partial_sort">partial_sort</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.partial_sort.h0"></a>
<span><a name="range.reference.algorithms.mutating.partial_sort.prototype"></a></span><a class="link" href="partial_sort.html#range.reference.algorithms.mutating.partial_sort.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">partial_sort</span><span class="special">(</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">RandomAccessRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">partial_sort</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">partial_sort</span><span class="special">(</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">RandomAccessRange</span><span class="special">&gt;::</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">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">partial_sort</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;::</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>
<h6>
<a name="range.reference.algorithms.mutating.partial_sort.h1"></a>
<span><a name="range.reference.algorithms.mutating.partial_sort.description"></a></span><a class="link" href="partial_sort.html#range.reference.algorithms.mutating.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">&lt;()</span></code>. The predicate versions use the
predicate instead.
</p>
<h6>
<a name="range.reference.algorithms.mutating.partial_sort.h2"></a>
<span><a name="range.reference.algorithms.mutating.partial_sort.definition"></a></span><a class="link" href="partial_sort.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.partial_sort.h3"></a>
<span><a name="range.reference.algorithms.mutating.partial_sort.requirements"></a></span><a class="link" href="partial_sort.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.partial_sort.h4"></a>
<span><a name="range.reference.algorithms.mutating.partial_sort.complexity"></a></span><a class="link" href="partial_sort.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="partition.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,132 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>partition</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="partial_sort.html" title="partial_sort">
<link rel="next" href="random_shuffle.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random_shuffle.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_partition">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.partition"></a><a class="link" href="partition.html" title="partition">partition</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.partition.h0"></a>
<span><a name="range.reference.algorithms.mutating.partition.prototype"></a></span><a class="link" href="partition.html#range.reference.algorithms.mutating.partition.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">partition</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&gt;::</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">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">partition</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</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">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.partition.h1"></a>
<span><a name="range.reference.algorithms.mutating.partition.description"></a></span><a class="link" href="partition.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.partition.h2"></a>
<span><a name="range.reference.algorithms.mutating.partition.definition"></a></span><a class="link" href="partition.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.partition.h3"></a>
<span><a name="range.reference.algorithms.mutating.partition.requirements"></a></span><a class="link" href="partition.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.partition.h4"></a>
<span><a name="range.reference.algorithms.mutating.partition.complexity"></a></span><a class="link" href="partition.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="random_shuffle.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,131 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>random_shuffle</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="partition.html" title="partition">
<link rel="next" href="remove.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_random_shuffle">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.random_shuffle"></a><a class="link" href="random_shuffle.html" title="random_shuffle">random_shuffle</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.random_shuffle.h0"></a>
<span><a name="range.reference.algorithms.mutating.random_shuffle.prototype"></a></span><a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.random_shuffle.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">random_shuffle</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">random_shuffle</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">random_shuffle</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Generator</span><span class="special">&amp;</span> <span class="identifier">gen</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">random_shuffle</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Generator</span><span class="special">&amp;</span> <span class="identifier">gen</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.random_shuffle.h1"></a>
<span><a name="range.reference.algorithms.mutating.random_shuffle.description"></a></span><a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.random_shuffle.h2"></a>
<span><a name="range.reference.algorithms.mutating.random_shuffle.definition"></a></span><a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.random_shuffle.h3"></a>
<span><a name="range.reference.algorithms.mutating.random_shuffle.requirements"></a></span><a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.random_shuffle.h4"></a>
<span><a name="range.reference.algorithms.mutating.random_shuffle.precondition_"></a></span><a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.random_shuffle.h5"></a>
<span><a name="range.reference.algorithms.mutating.random_shuffle.complexity"></a></span><a class="link" href="random_shuffle.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,138 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>remove</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="random_shuffle.html" title="random_shuffle">
<link rel="next" href="remove_copy.html" title="remove_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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_remove">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.remove"></a><a class="link" href="remove.html" title="remove">remove</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.remove.h0"></a>
<span><a name="range.reference.algorithms.mutating.remove.prototype"></a></span><a class="link" href="remove.html#range.reference.algorithms.mutating.remove.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">remove</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&gt;::</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">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span><span class="identifier">re</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">remove</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span><span class="identifier">re</span><span class="special">&gt;::</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">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.remove.h1"></a>
<span><a name="range.reference.algorithms.mutating.remove.description"></a></span><a class="link" href="remove.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.remove.h2"></a>
<span><a name="range.reference.algorithms.mutating.remove.definition"></a></span><a class="link" href="remove.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.remove.h3"></a>
<span><a name="range.reference.algorithms.mutating.remove.requirements"></a></span><a class="link" href="remove.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.remove.h4"></a>
<span><a name="range.reference.algorithms.mutating.remove.complexity"></a></span><a class="link" href="remove.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,108 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>remove_copy</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="remove.html" title="remove">
<link rel="next" href="remove_copy_if.html" title="remove_copy_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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_copy_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_remove_copy">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.remove_copy"></a><a class="link" href="remove_copy.html" title="remove_copy">remove_copy</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy.h0"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy.prototype"></a></span><a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</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">Value</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span>
<span class="identifier">remove_copy</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</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">Value</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span>
<span class="identifier">remove_copy</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</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="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">val</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy.h1"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy.description"></a></span><a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">remove_copy</span></code> copied all
of the elements <code class="computeroutput"><span class="identifier">x</span></code> from
<code class="computeroutput"><span class="identifier">rng</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">false</span></code>.
</p>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy.h2"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy.definition"></a></span><a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_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">remove_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy.h3"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy.requirements"></a></span><a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.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>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy.h4"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy.complexity"></a></span><a class="link" href="remove_copy.html#range.reference.algorithms.mutating.remove_copy.complexity">Complexity</a>
</h6>
<p>
Linear. <code class="computeroutput"><span class="identifier">remove_copy</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_copy_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,103 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>remove_copy_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="remove_copy.html" title="remove_copy">
<link rel="next" href="remove_if.html" title="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="../../../../../../../../libs/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_copy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_remove_copy_if">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.remove_copy_if"></a><a class="link" href="remove_copy_if.html" title="remove_copy_if">remove_copy_if</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy_if.h0"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy_if.prototype"></a></span><a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_if.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</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">UnaryPred</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span>
<span class="identifier">remove_copy_if</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">UnaryPred</span> <span class="identifier">pred</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</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">UnaryPred</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span>
<span class="identifier">remove_copy_if</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</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">UnaryPred</span> <span class="identifier">pred</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy_if.h1"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy_if.description"></a></span><a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_if.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">remove_copy_if</span></code> copied
all of the elements <code class="computeroutput"><span class="identifier">x</span></code>
from <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></code>
is <code class="computeroutput"><span class="keyword">false</span></code>.
</p>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy_if.h2"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy_if.definition"></a></span><a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_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_copy_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy_if.h3"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy_if.requirements"></a></span><a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_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">UnaryPred</span></code> is a model
of the <code class="computeroutput"><span class="identifier">UnaryPredicateConcept</span></code>.
</li>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.remove_copy_if.h4"></a>
<span><a name="range.reference.algorithms.mutating.remove_copy_if.complexity"></a></span><a class="link" href="remove_copy_if.html#range.reference.algorithms.mutating.remove_copy_if.complexity">Complexity</a>
</h6>
<p>
Linear. <code class="computeroutput"><span class="identifier">remove_copy_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> comparisons with UnaryPred.
</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 &#169; 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_copy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="remove_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,137 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>remove_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="remove_copy_if.html" title="remove_copy_if">
<link rel="next" href="replace.html" title="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="../../../../../../../../libs/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_copy_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_remove_if">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.remove_if"></a><a class="link" href="remove_if.html" title="remove_if">remove_if</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.remove_if.h0"></a>
<span><a name="range.reference.algorithms.mutating.remove_if.prototype"></a></span><a class="link" href="remove_if.html#range.reference.algorithms.mutating.remove_if.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">remove</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&gt;::</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">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span><span class="identifier">re</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">remove</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span><span class="identifier">re</span><span class="special">&gt;::</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">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.remove_if.h1"></a>
<span><a name="range.reference.algorithms.mutating.remove_if.description"></a></span><a class="link" href="remove_if.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.remove_if.h2"></a>
<span><a name="range.reference.algorithms.mutating.remove_if.definition"></a></span><a class="link" href="remove_if.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.remove_if.h3"></a>
<span><a name="range.reference.algorithms.mutating.remove_if.requirements"></a></span><a class="link" href="remove_if.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.remove_if.h4"></a>
<span><a name="range.reference.algorithms.mutating.remove_if.complexity"></a></span><a class="link" href="remove_if.html#range.reference.algorithms.mutating.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 &#169; 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_copy_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,118 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>replace</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="remove_if.html" title="remove_if">
<link rel="next" href="replace_copy.html" title="replace_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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_replace">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.replace"></a><a class="link" href="replace.html" title="replace">replace</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.replace.h0"></a>
<span><a name="range.reference.algorithms.mutating.replace.prototype"></a></span><a class="link" href="replace.html#range.reference.algorithms.mutating.replace.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">replace</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">what</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">with_what</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">replace</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">what</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">with_what</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.replace.h1"></a>
<span><a name="range.reference.algorithms.mutating.replace.description"></a></span><a class="link" href="replace.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.replace.h2"></a>
<span><a name="range.reference.algorithms.mutating.replace.definition"></a></span><a class="link" href="replace.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.replace.h3"></a>
<span><a name="range.reference.algorithms.mutating.replace.requirements"></a></span><a class="link" href="replace.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.replace.h4"></a>
<span><a name="range.reference.algorithms.mutating.replace.complexity"></a></span><a class="link" href="replace.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,111 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>replace_copy</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="replace.html" title="replace">
<link rel="next" href="replace_copy_if.html" title="replace_copy_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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace_copy_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_replace_copy">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.replace_copy"></a><a class="link" href="replace_copy.html" title="replace_copy">replace_copy</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy.h0"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy.prototype"></a></span><a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</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">Value</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">replace_copy</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</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="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">what</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">with_what</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy.h1"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy.description"></a></span><a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">replace_copy</span></code> copy every
element <code class="computeroutput"><span class="identifier">x</span></code> in <code class="computeroutput"><span class="identifier">rng</span></code> such that the corresponding element
in the output range <code class="computeroutput"><span class="identifier">y</span></code>
is <code class="computeroutput"><span class="identifier">x</span> <span class="special">==</span>
<span class="identifier">what</span> <span class="special">?</span>
<span class="identifier">with_what</span> <span class="special">:</span>
<span class="identifier">x</span></code>.
</p>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy.h2"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy.definition"></a></span><a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_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">replace_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy.h3"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy.requirements"></a></span><a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.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">OutputIterator</span></code> is
a model of the <code class="computeroutput"><span class="identifier">OutputIteratorConcept</span></code>.
</li>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy.h4"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy.complexity"></a></span><a class="link" href="replace_copy.html#range.reference.algorithms.mutating.replace_copy.complexity">Complexity</a>
</h6>
<p>
Linear. <code class="computeroutput"><span class="identifier">replace_copy</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>.
</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace_copy_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,113 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>replace_copy_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="replace_copy.html" title="replace_copy">
<link rel="next" href="replace_if.html" title="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="../../../../../../../../libs/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_copy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_replace_copy_if">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.replace_copy_if"></a><a class="link" href="replace_copy_if.html" title="replace_copy_if">replace_copy_if</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy_if.h0"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy_if.prototype"></a></span><a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_if.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</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">UnaryPredicate</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Value</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">replace_copy_if</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</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">UnaryPredicate</span> <span class="identifier">pred</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Value</span><span class="special">&amp;</span> <span class="identifier">with_what</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy_if.h1"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy_if.description"></a></span><a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_if.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">replace_copy_if</span></code> copy
every element <code class="computeroutput"><span class="identifier">x</span></code> in <code class="computeroutput"><span class="identifier">rng</span></code> such that the corresponding element
in the output range <code class="computeroutput"><span class="identifier">y</span></code>
is <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="identifier">with_what</span>
<span class="special">:</span> <span class="identifier">x</span></code>.
</p>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy_if.h2"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy_if.definition"></a></span><a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_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_copy_if</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy_if.h3"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy_if.requirements"></a></span><a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_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">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">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">UnaryPredicate</span></code> is
a model of the <code class="computeroutput"><span class="identifier">UnaryPredicateConcept</span></code>.
</li>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.replace_copy_if.h4"></a>
<span><a name="range.reference.algorithms.mutating.replace_copy_if.complexity"></a></span><a class="link" href="replace_copy_if.html#range.reference.algorithms.mutating.replace_copy_if.complexity">Complexity</a>
</h6>
<p>
Linear. <code class="computeroutput"><span class="identifier">replace_copy_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> evaluations 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 &#169; 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_copy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="replace_if.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,116 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>replace_if</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="replace_copy_if.html" title="replace_copy_if">
<link rel="next" href="reverse.html" title="reverse">
</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="../../../../../../../../libs/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_copy_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_replace_if">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.replace_if"></a><a class="link" href="replace_if.html" title="replace_if">replace_if</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.replace_if.h0"></a>
<span><a name="range.reference.algorithms.mutating.replace_if.prototype"></a></span><a class="link" href="replace_if.html#range.reference.algorithms.mutating.replace_if.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">replace_if</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">with_what</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">replace_if</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</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">&amp;</span> <span class="identifier">with_what</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.replace_if.h1"></a>
<span><a name="range.reference.algorithms.mutating.replace_if.description"></a></span><a class="link" href="replace_if.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.replace_if.h2"></a>
<span><a name="range.reference.algorithms.mutating.replace_if.definition"></a></span><a class="link" href="replace_if.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.replace_if.h3"></a>
<span><a name="range.reference.algorithms.mutating.replace_if.requirements"></a></span><a class="link" href="replace_if.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.replace_if.h4"></a>
<span><a name="range.reference.algorithms.mutating.replace_if.complexity"></a></span><a class="link" href="replace_if.html#range.reference.algorithms.mutating.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 &#169; 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_copy_if.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,96 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>reverse</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="replace_if.html" title="replace_if">
<link rel="next" href="reverse_copy.html" title="reverse_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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_reverse">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.reverse"></a><a class="link" href="reverse.html" title="reverse">reverse</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.reverse.h0"></a>
<span><a name="range.reference.algorithms.mutating.reverse.prototype"></a></span><a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">&gt;</span>
<span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">reverse</span><span class="special">(</span><span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">reverse</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.reverse.h1"></a>
<span><a name="range.reference.algorithms.mutating.reverse.description"></a></span><a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">reverse</span></code> reverses a range.
Returns a reference to the reversed range.
</p>
<h6>
<a name="range.reference.algorithms.mutating.reverse.h2"></a>
<span><a name="range.reference.algorithms.mutating.reverse.definition"></a></span><a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.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">reverse</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.reverse.h3"></a>
<span><a name="range.reference.algorithms.mutating.reverse.requirements"></a></span><a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.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 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>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.reverse.h4"></a>
<span><a name="range.reference.algorithms.mutating.reverse.complexity"></a></span><a class="link" href="reverse.html#range.reference.algorithms.mutating.reverse.complexity">Complexity</a>
</h6>
<p>
Linear. <code class="computeroutput"><span class="identifier">reverse</span></code> makes
<code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)/</span><span class="number">2</span></code> calls to <code class="computeroutput"><span class="identifier">iter_swap</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reverse_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,100 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>reverse_copy</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="reverse.html" title="reverse">
<link rel="next" href="rotate.html" title="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="../../../../../../../../libs/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="reverse.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rotate.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_reverse_copy">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.reverse_copy"></a><a class="link" href="reverse_copy.html" title="reverse_copy">reverse_copy</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.reverse_copy.h0"></a>
<span><a name="range.reference.algorithms.mutating.reverse_copy.prototype"></a></span><a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">BidirectionalRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">reverse_copy</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">BidirectionalRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.reverse_copy.h1"></a>
<span><a name="range.reference.algorithms.mutating.reverse_copy.description"></a></span><a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">reverse_copy</span></code> copies the
elements from <code class="computeroutput"><span class="identifier">rng</span></code> in
reverse order to <code class="computeroutput"><span class="identifier">out</span></code>.
Returns the output iterator one passed the last copied element.
</p>
<h6>
<a name="range.reference.algorithms.mutating.reverse_copy.h2"></a>
<span><a name="range.reference.algorithms.mutating.reverse_copy.definition"></a></span><a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_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">reverse_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.reverse_copy.h3"></a>
<span><a name="range.reference.algorithms.mutating.reverse_copy.requirements"></a></span><a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.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 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">OutputIterator</span></code> is
a model of the <code class="computeroutput"><span class="identifier">OutputIteratorConcept</span></code>.
</li>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.reverse_copy.h4"></a>
<span><a name="range.reference.algorithms.mutating.reverse_copy.complexity"></a></span><a class="link" href="reverse_copy.html#range.reference.algorithms.mutating.reverse_copy.complexity">Complexity</a>
</h6>
<p>
Linear. <code class="computeroutput"><span class="identifier">reverse_copy</span></code>
makes <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span></code>
copies.
</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 &#169; 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="reverse.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rotate.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,109 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>rotate</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="reverse_copy.html" title="reverse_copy">
<link rel="next" href="rotate_copy.html" title="rotate_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="../../../../../../../../libs/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="reverse_copy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rotate_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_rotate">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.rotate"></a><a class="link" href="rotate.html" title="rotate">rotate</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.rotate.h0"></a>
<span><a name="range.reference.algorithms.mutating.rotate.prototype"></a></span><a class="link" href="rotate.html#range.reference.algorithms.mutating.rotate.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">&gt;</span>
<span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rotate</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rotate</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.rotate.h1"></a>
<span><a name="range.reference.algorithms.mutating.rotate.description"></a></span><a class="link" href="rotate.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.rotate.h2"></a>
<span><a name="range.reference.algorithms.mutating.rotate.definition"></a></span><a class="link" href="rotate.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.rotate.h3"></a>
<span><a name="range.reference.algorithms.mutating.rotate.requirements"></a></span><a class="link" href="rotate.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.rotate.h4"></a>
<span><a name="range.reference.algorithms.mutating.rotate.precondition_"></a></span><a class="link" href="rotate.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.rotate.h5"></a>
<span><a name="range.reference.algorithms.mutating.rotate.complexity"></a></span><a class="link" href="rotate.html#range.reference.algorithms.mutating.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 &#169; 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="reverse_copy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="rotate_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,111 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>rotate_copy</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="rotate.html" title="rotate">
<link rel="next" href="sort.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sort.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_rotate_copy">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.rotate_copy"></a><a class="link" href="rotate_copy.html" title="rotate_copy">rotate_copy</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.rotate_copy.h0"></a>
<span><a name="range.reference.algorithms.mutating.rotate_copy.prototype"></a></span><a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">rotate_copy</span><span class="special">(</span>
<span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">&gt;::</span><span class="identifier">type</span> <span class="identifier">middle</span><span class="special">,</span>
<span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.rotate_copy.h1"></a>
<span><a name="range.reference.algorithms.mutating.rotate_copy.description"></a></span><a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">rotate_copy</span></code> rotates the
elements in a range. It copies 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> to <code class="computeroutput"><span class="identifier">out</span></code>.
</p>
<h6>
<a name="range.reference.algorithms.mutating.rotate_copy.h2"></a>
<span><a name="range.reference.algorithms.mutating.rotate_copy.definition"></a></span><a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_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">rotate_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.rotate_copy.h3"></a>
<span><a name="range.reference.algorithms.mutating.rotate_copy.requirements"></a></span><a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.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">OutputIterator</span></code> is
a model of the <code class="computeroutput"><span class="identifier">OutputIteratorConcept</span></code>.
</li>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.rotate_copy.h4"></a>
<span><a name="range.reference.algorithms.mutating.rotate_copy.precondition_"></a></span><a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.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>
<h6>
<a name="range.reference.algorithms.mutating.rotate_copy.h5"></a>
<span><a name="range.reference.algorithms.mutating.rotate_copy.complexity"></a></span><a class="link" href="rotate_copy.html#range.reference.algorithms.mutating.rotate_copy.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> elements are copied.
</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="sort.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,153 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>sort</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="rotate_copy.html" title="rotate_copy">
<link rel="next" href="stable_partition.html" title="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="../../../../../../../../libs/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_copy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stable_partition.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_sort">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.sort"></a><a class="link" href="sort.html" title="sort">sort</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.sort.h0"></a>
<span><a name="range.reference.algorithms.mutating.sort.prototype"></a></span><a class="link" href="sort.html#range.reference.algorithms.mutating.sort.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.sort.h1"></a>
<span><a name="range.reference.algorithms.mutating.sort.description"></a></span><a class="link" href="sort.html#range.reference.algorithms.mutating.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">&lt;()</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">&lt;</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>
<h6>
<a name="range.reference.algorithms.mutating.sort.h2"></a>
<span><a name="range.reference.algorithms.mutating.sort.definition"></a></span><a class="link" href="sort.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.sort.h3"></a>
<span><a name="range.reference.algorithms.mutating.sort.requirements"></a></span><a class="link" href="sort.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.sort.h4"></a>
<span><a name="range.reference.algorithms.mutating.sort.complexity"></a></span><a class="link" href="sort.html#range.reference.algorithms.mutating.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 &#169; 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_copy.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stable_partition.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,134 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>stable_partition</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="sort.html" title="sort">
<link rel="next" href="stable_sort.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stable_sort.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_stable_partition">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.stable_partition"></a><a class="link" href="stable_partition.html" title="stable_partition">stable_partition</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.stable_partition.h0"></a>
<span><a name="range.reference.algorithms.mutating.stable_partition.prototype"></a></span><a class="link" href="stable_partition.html#range.reference.algorithms.mutating.stable_partition.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_iterator</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">&gt;::</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">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">stable_partition</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</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">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.stable_partition.h1"></a>
<span><a name="range.reference.algorithms.mutating.stable_partition.description"></a></span><a class="link" href="stable_partition.html#range.reference.algorithms.mutating.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 stable.
</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>
<h6>
<a name="range.reference.algorithms.mutating.stable_partition.h2"></a>
<span><a name="range.reference.algorithms.mutating.stable_partition.definition"></a></span><a class="link" href="stable_partition.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.stable_partition.h3"></a>
<span><a name="range.reference.algorithms.mutating.stable_partition.requirements"></a></span><a class="link" href="stable_partition.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.stable_partition.h4"></a>
<span><a name="range.reference.algorithms.mutating.stable_partition.complexity"></a></span><a class="link" href="stable_partition.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="stable_sort.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,156 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>stable_sort</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="stable_partition.html" title="stable_partition">
<link rel="next" href="swap_ranges.html" title="swap_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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="swap_ranges.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_stable_sort">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.stable_sort"></a><a class="link" href="stable_sort.html" title="stable_sort">stable_sort</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.stable_sort.h0"></a>
<span><a name="range.reference.algorithms.mutating.stable_sort.prototype"></a></span><a class="link" href="stable_sort.html#range.reference.algorithms.mutating.stable_sort.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">stable_sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">RandomAccessRange</span><span class="special">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">stable_sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">stable_sort</span><span class="special">(</span><span class="identifier">RandomAccessRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</span> <span class="identifier">stable_sort</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">RandomAccessRange</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.stable_sort.h1"></a>
<span><a name="range.reference.algorithms.mutating.stable_sort.description"></a></span><a class="link" href="stable_sort.html#range.reference.algorithms.mutating.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">&lt;()</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">&lt;</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>
<h6>
<a name="range.reference.algorithms.mutating.stable_sort.h2"></a>
<span><a name="range.reference.algorithms.mutating.stable_sort.definition"></a></span><a class="link" href="stable_sort.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.stable_sort.h3"></a>
<span><a name="range.reference.algorithms.mutating.stable_sort.requirements"></a></span><a class="link" href="stable_sort.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.stable_sort.h4"></a>
<span><a name="range.reference.algorithms.mutating.stable_sort.complexity"></a></span><a class="link" href="stable_sort.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="swap_ranges.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,103 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>swap_ranges</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="stable_sort.html" title="stable_sort">
<link rel="next" href="transform.html" title="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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_swap_ranges">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.swap_ranges"></a><a class="link" href="swap_ranges.html" title="swap_ranges">swap_ranges</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.swap_ranges.h0"></a>
<span><a name="range.reference.algorithms.mutating.swap_ranges.prototype"></a></span><a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">SinglePassRange2</span><span class="special">&amp;</span> <span class="identifier">swap_ranges</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&amp;</span> <span class="identifier">rng1</span><span class="special">,</span> <span class="identifier">SinglePassRange</span><span class="special">&amp;</span> <span class="identifier">rng2</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.swap_ranges.h1"></a>
<span><a name="range.reference.algorithms.mutating.swap_ranges.description"></a></span><a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">swap_ranges</span></code> swaps each
element <code class="computeroutput"><span class="identifier">x</span></code> in <code class="computeroutput"><span class="identifier">rng1</span></code> with the corresponding element
<code class="computeroutput"><span class="identifier">y</span></code> in <code class="computeroutput"><span class="identifier">rng2</span></code>.
Returns a reference to <code class="computeroutput"><span class="identifier">rng2</span></code>.
</p>
<h6>
<a name="range.reference.algorithms.mutating.swap_ranges.h2"></a>
<span><a name="range.reference.algorithms.mutating.swap_ranges.definition"></a></span><a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.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">swap_ranges</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.swap_ranges.h3"></a>
<span><a name="range.reference.algorithms.mutating.swap_ranges.requirements"></a></span><a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.requirements">Requirements</a>
</h6>
<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">SinglePassRange1</span></code>
is mutable.
</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>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.swap_ranges.h4"></a>
<span><a name="range.reference.algorithms.mutating.swap_ranges.complexity"></a></span><a class="link" href="swap_ranges.html#range.reference.algorithms.mutating.swap_ranges.complexity">Complexity</a>
</h6>
<p>
Linear. Exactly <code class="computeroutput"><span class="identifier">distance</span><span class="special">(</span><span class="identifier">rng1</span><span class="special">)</span></code> elements are swapped.
</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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="transform.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,227 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>transform</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="swap_ranges.html" title="swap_ranges">
<link rel="next" href="unique.html" title="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="../../../../../../../../libs/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="swap_ranges.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="unique.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_transform">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.transform"></a><a class="link" href="transform.html" title="transform">transform</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.transform.h0"></a>
<span><a name="range.reference.algorithms.mutating.transform.prototype"></a></span><a class="link" href="transform.html#range.reference.algorithms.mutating.transform.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</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">&amp;</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">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">rng1</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.transform.h1"></a>
<span><a name="range.reference.algorithms.mutating.transform.description"></a></span><a class="link" href="transform.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.transform.h2"></a>
<span><a name="range.reference.algorithms.mutating.transform.definition"></a></span><a class="link" href="transform.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.transform.h3"></a>
<span><a name="range.reference.algorithms.mutating.transform.requirements"></a></span><a class="link" href="transform.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.transform.h4"></a>
<span><a name="range.reference.algorithms.mutating.transform.precondition_"></a></span><a class="link" href="transform.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.transform.h5"></a>
<span><a name="range.reference.algorithms.mutating.transform.complexity"></a></span><a class="link" href="transform.html#range.reference.algorithms.mutating.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 &#169; 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="swap_ranges.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="unique.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,163 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>unique</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="transform.html" title="transform">
<link rel="next" href="unique_copy.html" title="unique_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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="unique_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_unique">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.unique"></a><a class="link" href="unique.html" title="unique">unique</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.unique.h0"></a>
<span><a name="range.reference.algorithms.mutating.unique.prototype"></a></span><a class="link" href="unique.html#range.reference.algorithms.mutating.unique.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">return_begin_found</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">unique</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">ForwardRange</span><span class="special">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</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">&gt;::</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">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">return_begin_found</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">unique</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</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">&gt;::</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">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">unique</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</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">&amp;</span> <span class="identifier">rng</span><span class="special">);</span>
<span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</span><span class="identifier">type</span>
<span class="identifier">unique</span><span class="special">(</span><span class="identifier">ForwardRange</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="keyword">typename</span> <span class="identifier">range_return</span><span class="special">&lt;</span><span class="keyword">const</span> <span class="identifier">ForwardRange</span><span class="special">,</span> <span class="identifier">re</span><span class="special">&gt;::</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">&amp;</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>
<h6>
<a name="range.reference.algorithms.mutating.unique.h1"></a>
<span><a name="range.reference.algorithms.mutating.unique.description"></a></span><a class="link" href="unique.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.unique.h2"></a>
<span><a name="range.reference.algorithms.mutating.unique.definition"></a></span><a class="link" href="unique.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.unique.h3"></a>
<span><a name="range.reference.algorithms.mutating.unique.requirements"></a></span><a class="link" href="unique.html#range.reference.algorithms.mutating.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>
<h6>
<a name="range.reference.algorithms.mutating.unique.h4"></a>
<span><a name="range.reference.algorithms.mutating.unique.complexity"></a></span><a class="link" href="unique.html#range.reference.algorithms.mutating.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="unique_copy.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,142 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>unique_copy</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../mutating.html" title="Mutating algorithms">
<link rel="prev" href="unique.html" title="unique">
<link rel="next" href="../non_mutating.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="../../../../../../../../libs/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="unique.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../non_mutating.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_mutating_unique_copy">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.mutating.unique_copy"></a><a class="link" href="unique_copy.html" title="unique_copy">unique_copy</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.mutating.unique_copy.h0"></a>
<span><a name="range.reference.algorithms.mutating.unique_copy.prototype"></a></span><a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">unique_copy</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&amp;</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="keyword">template</span><span class="special">&lt;</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="keyword">class</span> <span class="identifier">BinaryPredicate</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">unique_copy</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&amp;</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">BinaryPredicate</span> <span class="identifier">pred</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.mutating.unique_copy.h1"></a>
<span><a name="range.reference.algorithms.mutating.unique_copy.description"></a></span><a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">unique_copy</span></code> copies the
first element of each sequence of duplicates encountered in <code class="computeroutput"><span class="identifier">rng</span></code> to <code class="computeroutput"><span class="identifier">out</span></code>.
</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">SinglePassRange</span></code>'s
value type.
</p>
<h6>
<a name="range.reference.algorithms.mutating.unique_copy.h2"></a>
<span><a name="range.reference.algorithms.mutating.unique_copy.definition"></a></span><a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_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">unique_copy</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.mutating.unique_copy.h3"></a>
<span><a name="range.reference.algorithms.mutating.unique_copy.requirements"></a></span><a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.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">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">SinglePassRange</span></code> is
mutable.
</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">
<code class="computeroutput"><span class="identifier">OutputIterator</span></code> is
a model of the <code class="computeroutput"><span class="identifier">OutputIteratorConcept</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">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">SinglePassRange</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">SinglePassRange</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>
<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>
</ul></div>
<h6>
<a name="range.reference.algorithms.mutating.unique_copy.h4"></a>
<span><a name="range.reference.algorithms.mutating.unique_copy.complexity"></a></span><a class="link" href="unique_copy.html#range.reference.algorithms.mutating.unique_copy.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 &#169; 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="unique.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../mutating.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../non_mutating.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,57 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>New algorithms</title>
<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../algorithms.html" title="Range Algorithms">
<link rel="prev" href="permutation/prev_permutation.html" title="prev_permutation">
<link rel="next" href="new/copy_n.html" title="copy_n">
</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="../../../../../../../libs/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/prev_permutation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="new/copy_n.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_new">
<div class="titlepage"><div><div><h4 class="title">
<a name="range.reference.algorithms.new"></a><a class="link" href="new.html" title="New algorithms">New algorithms</a>
</h4></div></div></div>
<div class="toc"><dl>
<dt><span class="section"><a href="new/copy_n.html">copy_n</a></span></dt>
<dt><span class="section"><a href="new/erase.html">erase</a></span></dt>
<dt><span class="section"><a href="new/for_each.html">for_each</a></span></dt>
<dt><span class="section"><a href="new/insert.html">insert</a></span></dt>
<dt><span class="section"><a href="new/iota.html">iota</a></span></dt>
<dt><span class="section"><a href="new/is_sorted.html">is_sorted</a></span></dt>
<dt><span class="section"><a href="new/overwrite.html">overwrite</a></span></dt>
<dt><span class="section"><a href="new/push_back.html">push_back</a></span></dt>
<dt><span class="section"><a href="new/push_front.html">push_front</a></span></dt>
<dt><span class="section"><a href="new/remove_erase.html">remove_erase</a></span></dt>
<dt><span class="section"><a href="new/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 &#169; 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/prev_permutation.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../algorithms.html"><img src="../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="new/copy_n.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,103 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>copy_n</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../new.html" title="New algorithms">
<link rel="prev" href="../new.html" title="New algorithms">
<link rel="next" href="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="../../../../../../../../libs/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="../new.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../new.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_new_copy_n">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.new.copy_n"></a><a class="link" href="copy_n.html" title="copy_n">copy_n</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.new.copy_n.h0"></a>
<span><a name="range.reference.algorithms.new.copy_n.prototype"></a></span><a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">SinglePassRange</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">Size</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">OutputIterator</span><span class="special">&gt;</span>
<span class="identifier">OutputIterator</span> <span class="identifier">copy_n</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">SinglePassRange</span><span class="special">&amp;</span> <span class="identifier">rng</span><span class="special">,</span> <span class="identifier">Size</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">OutputIterator</span> <span class="identifier">out</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.new.copy_n.h1"></a>
<span><a name="range.reference.algorithms.new.copy_n.description"></a></span><a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.description">Description</a>
</h6>
<p>
<code class="computeroutput"><span class="identifier">copy_n</span></code> is provided to
completely replicate the standard algorithm header, it is preferable
to use Range Adaptors and the extension functions to achieve the same
result with greater safety.
</p>
<p>
<code class="computeroutput"><span class="identifier">copy_n</span></code> copies elements
from <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">begin</span><span class="special">(</span><span class="identifier">rng</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">n</span><span class="special">)</span></code> to the range <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">n</span><span class="special">)</span></code>
</p>
<h6>
<a name="range.reference.algorithms.new.copy_n.h2"></a>
<span><a name="range.reference.algorithms.new.copy_n.definition"></a></span><a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.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">copy_n</span><span class="special">.</span><span class="identifier">hpp</span></code>
</p>
<h6>
<a name="range.reference.algorithms.new.copy_n.h3"></a>
<span><a name="range.reference.algorithms.new.copy_n.requirements"></a></span><a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.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">Size</span></code> is a model of
the <code class="computeroutput"><span class="identifier">Integer</span></code> 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>
</ol></div>
<h6>
<a name="range.reference.algorithms.new.copy_n.h4"></a>
<span><a name="range.reference.algorithms.new.copy_n.complexity"></a></span><a class="link" href="copy_n.html#range.reference.algorithms.new.copy_n.complexity">Complexity</a>
</h6>
<p>
Linear. Exactly <code class="computeroutput"><span class="identifier">n</span></code> elements
are copied.
</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 &#169; 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="../new.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../new.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="erase.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,96 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>erase</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../new.html" title="New algorithms">
<link rel="prev" href="copy_n.html" title="copy_n">
<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="../../../../../../../../libs/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_n.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../new.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_new_erase">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.new.erase"></a><a class="link" href="erase.html" title="erase">erase</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.new.erase.h0"></a>
<span><a name="range.reference.algorithms.new.erase.prototype"></a></span><a class="link" href="erase.html#range.reference.algorithms.new.erase.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">Container</span><span class="special">&gt;</span>
<span class="identifier">Container</span><span class="special">&amp;</span> <span class="identifier">erase</span><span class="special">(</span>
<span class="identifier">Container</span><span class="special">&amp;</span> <span class="identifier">target</span><span class="special">,</span>
<span class="identifier">iterator_range</span><span class="special">&lt;</span><span class="keyword">typename</span> <span class="identifier">Container</span><span class="special">::</span><span class="identifier">iterator</span><span class="special">&gt;</span> <span class="identifier">to_erase</span><span class="special">);</span>
</pre>
<p>
</p>
<h6>
<a name="range.reference.algorithms.new.erase.h1"></a>
<span><a name="range.reference.algorithms.new.erase.description"></a></span><a class="link" href="erase.html#range.reference.algorithms.new.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>
<p>
<code class="computeroutput"><span class="identifier">remove_erase</span></code> performs
the frequently used combination equivalent to <code class="computeroutput"><span class="identifier">target</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">remove</span><span class="special">(</span><span class="identifier">target</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">target</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">value</span><span class="special">),</span> <span class="identifier">target</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span></code>
</p>
<p>
<code class="computeroutput"><span class="identifier">remove_erase_if</span></code> performs
the frequently used combination equivalent to <code class="computeroutput"><span class="identifier">target</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">remove_if</span><span class="special">(</span><span class="identifier">target</span><span class="special">.</span><span class="identifier">begin</span><span class="special">(),</span> <span class="identifier">target</span><span class="special">.</span><span class="identifier">end</span><span class="special">(),</span> <span class="identifier">pred</span><span class="special">),</span> <span class="identifier">target</span><span class="special">.</span><span class="identifier">end</span><span class="special">());</span></code>
</p>
<h6>
<a name="range.reference.algorithms.new.erase.h2"></a>
<span><a name="range.reference.algorithms.new.erase.definition"></a></span><a class="link" href="erase.html#range.reference.algorithms.new.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>
<h6>
<a name="range.reference.algorithms.new.erase.h3"></a>
<span><a name="range.reference.algorithms.new.erase.requirements"></a></span><a class="link" href="erase.html#range.reference.algorithms.new.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>
<h6>
<a name="range.reference.algorithms.new.erase.h4"></a>
<span><a name="range.reference.algorithms.new.erase.complexity"></a></span><a class="link" href="erase.html#range.reference.algorithms.new.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 &#169; 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_n.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../new.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="for_each.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>

View File

@ -1,149 +0,0 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>for_each</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.75.2">
<link rel="home" href="../../../../index.html" title="Chapter&#160;1.&#160;Range 2.0">
<link rel="up" href="../new.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="../../../../../../../../libs/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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../new.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section range_reference_algorithms_new_for_each">
<div class="titlepage"><div><div><h5 class="title">
<a name="range.reference.algorithms.new.for_each"></a><a class="link" href="for_each.html" title="for_each">for_each</a>
</h5></div></div></div>
<h6>
<a name="range.reference.algorithms.new.for_each.h0"></a>
<span><a name="range.reference.algorithms.new.for_each.prototype"></a></span><a class="link" href="for_each.html#range.reference.algorithms.new.for_each.prototype">Prototype</a>
</h6>
<p>
</p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">rng1</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&amp;</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">&lt;</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">&gt;</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">&amp;</span> <span class="identifier">rng1</span><span class="special">,</span>
<span class="identifier">SinglePassRange2</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="identifier">BinaryFunction</span> <span class="identifier">for_each</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&amp;</span> <span class="identifier">rng1</span><span class="special">,</span>
<span class="keyword">const</span> <span class="identifier">SinglePassRange2</span><span class="special">&amp;</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">&lt;</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">&gt;</span>
<span class="identifier">BinaryFunction</span> <span class="identifier">for_each</span><span class="special">(</span><span class="identifier">SinglePassRange1</span><span class="special">&amp;</span> <span class="identifier">rng1</span><span class="special">,</span>
<span class="identifier">SinglePassRange2</span><span class="special">&amp;</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>
<h6>
<a name="range.reference.algorithms.new.for_each.h1"></a>
<span><a name="range.reference.algorithms.new.for_each.description"></a></span><a class="link" href="for_each.html#range.reference.algorithms.new.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>
<h6>
<a name="range.reference.algorithms.new.for_each.h2"></a>
<span><a name="range.reference.algorithms.new.for_each.definition"></a></span><a class="link" href="for_each.html#range.reference.algorithms.new.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>
<h6>
<a name="range.reference.algorithms.new.for_each.h3"></a>
<span><a name="range.reference.algorithms.new.for_each.requirements"></a></span><a class="link" href="for_each.html#range.reference.algorithms.new.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>
<h6>
<a name="range.reference.algorithms.new.for_each.h4"></a>
<span><a name="range.reference.algorithms.new.for_each.complexity"></a></span><a class="link" href="for_each.html#range.reference.algorithms.new.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 &#169; 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/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../new.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="insert.html"><img src="../../../../../../../../doc/src/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