mirror of
https://github.com/boostorg/algorithm.git
synced 2025-06-25 20:11:50 +02:00
Compare commits
5 Commits
boost-1.72
...
boost-1.73
Author | SHA1 | Date | |
---|---|---|---|
e59958cc4d | |||
a814721376 | |||
9ef3df0d0b | |||
44527f4c81 | |||
9093abbda9 |
@ -22,6 +22,7 @@ doxygen autodoc
|
|||||||
../../../boost/algorithm/searching/*.hpp
|
../../../boost/algorithm/searching/*.hpp
|
||||||
../../../boost/algorithm/cxx11/*.hpp
|
../../../boost/algorithm/cxx11/*.hpp
|
||||||
../../../boost/algorithm/cxx14/*.hpp
|
../../../boost/algorithm/cxx14/*.hpp
|
||||||
|
../../../boost/algorithm/cxx17/*.hpp
|
||||||
]
|
]
|
||||||
:
|
:
|
||||||
<doxygen:param>"PREDEFINED=\"BOOST_ALGORITHM_DOXYGEN=1\""
|
<doxygen:param>"PREDEFINED=\"BOOST_ALGORITHM_DOXYGEN=1\""
|
||||||
@ -40,8 +41,8 @@ boostbook standalone
|
|||||||
<xsl:param>"boost.doxygen.reftitle=Boost.Algorithms C++ Reference"
|
<xsl:param>"boost.doxygen.reftitle=Boost.Algorithms C++ Reference"
|
||||||
<xsl:param>chapter.autolabel=0
|
<xsl:param>chapter.autolabel=0
|
||||||
<xsl:param>chunk.section.depth=8
|
<xsl:param>chunk.section.depth=8
|
||||||
<xsl:param>toc.section.depth=2
|
<xsl:param>toc.section.depth=3
|
||||||
<xsl:param>toc.max.depth=2
|
<xsl:param>toc.max.depth=3
|
||||||
<xsl:param>generate.section.toc.level=1
|
<xsl:param>generate.section.toc.level=1
|
||||||
;
|
;
|
||||||
|
|
||||||
|
@ -46,7 +46,11 @@ Thanks to all the people who have reviewed this library and made suggestions for
|
|||||||
[include knuth_morris_pratt.qbk]
|
[include knuth_morris_pratt.qbk]
|
||||||
[endsect]
|
[endsect]
|
||||||
|
|
||||||
|
|
||||||
[section:CXX11 C++11 Algorithms]
|
[section:CXX11 C++11 Algorithms]
|
||||||
|
|
||||||
|
[section:CXX11_inner_algorithms]
|
||||||
|
|
||||||
[include all_of.qbk]
|
[include all_of.qbk]
|
||||||
[include any_of.qbk]
|
[include any_of.qbk]
|
||||||
[include none_of.qbk]
|
[include none_of.qbk]
|
||||||
@ -55,24 +59,204 @@ Thanks to all the people who have reviewed this library and made suggestions for
|
|||||||
[include is_partitioned.qbk]
|
[include is_partitioned.qbk]
|
||||||
[include is_permutation.qbk]
|
[include is_permutation.qbk]
|
||||||
[include partition_point.qbk]
|
[include partition_point.qbk]
|
||||||
[endsect]
|
|
||||||
|
[section:partition_copy partition_copy ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.partition_copy_hpp partition_copy] ] ]
|
||||||
|
Copy a subset of a sequence to a new sequence
|
||||||
|
[endsect:partition_copy]
|
||||||
|
|
||||||
|
[section:copy_if copy_if ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.copy_if_hpp copy_if] ] ]
|
||||||
|
Copy a subset of a sequence to a new sequence
|
||||||
|
[endsect:copy_if]
|
||||||
|
|
||||||
|
[section:copy_n copy_n ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.copy_n_hpp copy_n] ] ]
|
||||||
|
Copy n items from one sequence to another
|
||||||
|
[endsect:copy_n]
|
||||||
|
|
||||||
|
[section:iota iota ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.iota_hpp iota] ] ]
|
||||||
|
Generate an increasing series
|
||||||
|
[endsect:iota]
|
||||||
|
|
||||||
|
[endsect:CXX11_inner_algorithms]
|
||||||
|
|
||||||
|
[endsect:CXX11]
|
||||||
|
|
||||||
|
|
||||||
[section:CXX14 C++14 Algorithms]
|
[section:CXX14 C++14 Algorithms]
|
||||||
|
|
||||||
|
[section:CXX14_inner_algorithms]
|
||||||
|
|
||||||
[include equal.qbk]
|
[include equal.qbk]
|
||||||
[include mismatch.qbk]
|
[include mismatch.qbk]
|
||||||
[endsect]
|
|
||||||
|
[endsect:CXX14_inner_algorithms]
|
||||||
|
|
||||||
|
[endsect:CXX14]
|
||||||
|
|
||||||
|
|
||||||
|
[section:CXX17 C++17 Algorithms]
|
||||||
|
|
||||||
|
[section:CXX17_inner_algorithms]
|
||||||
|
|
||||||
|
[section:for_each_n for_each_n]
|
||||||
|
[*[^[link boost.algorithm.for_each_n for_each_n] ] ]
|
||||||
|
Apply a functor to the elements of a sequence
|
||||||
|
[endsect:for_each_n]
|
||||||
|
|
||||||
|
[endsect:CXX17_inner_algorithms]
|
||||||
|
|
||||||
|
[endsect:CXX17]
|
||||||
|
|
||||||
|
|
||||||
[section:Misc Other Algorithms]
|
[section:Misc Other Algorithms]
|
||||||
[include clamp-hpp.qbk]
|
|
||||||
[include find_not.qbk]
|
|
||||||
[include find_backward.qbk]
|
|
||||||
[include gather.qbk]
|
|
||||||
[include hex.qbk]
|
|
||||||
[include is_palindrome.qbk]
|
|
||||||
[include is_partitioned_until.qbk]
|
|
||||||
[include apply_permutation.qbk]
|
|
||||||
[endsect]
|
|
||||||
|
|
||||||
|
[section:misc_inner_algorithms]
|
||||||
|
|
||||||
|
[section:none_of_equal none_of_equal ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.none_of_hpp none_of_equal] ] ]
|
||||||
|
Whether none of a range's elements matches a value
|
||||||
|
[endsect:none_of_equal]
|
||||||
|
|
||||||
|
[section:one_of_equal one_of_equal ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.one_of_hpp one_of_equal] ] ]
|
||||||
|
Whether only one of a range's elements matches a value
|
||||||
|
[endsect:one_of_equal]
|
||||||
|
|
||||||
|
[section:is_decreasing is_decreasing ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.is_sorted_hpp is_decreasing] ] ]
|
||||||
|
Whether an entire sequence is decreasing; i.e, each item is less than or equal to the previous one
|
||||||
|
[endsect:is_decreasing]
|
||||||
|
|
||||||
|
[section:is_increasing is_increasing ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.is_sorted_hpp is_increasing] ] ]
|
||||||
|
Whether an entire sequence is increasing; i.e, each item is greater than or equal to the previous one
|
||||||
|
[endsect:is_increasing]
|
||||||
|
|
||||||
|
[section:is_strictly_decreasing is_strictly_decreasing ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.is_sorted_hpp is_strictly_decreasing] ] ]
|
||||||
|
Whether an entire sequence is strictly decreasing; i.e, each item is less than the previous one
|
||||||
|
[endsect:is_strictly_decreasing]
|
||||||
|
|
||||||
|
[section:is_strictly_increasing is_strictly_increasing ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.is_sorted_hpp is_strictly_increasing] ] ]
|
||||||
|
Whether an entire sequence is strictly increasing; i.e, each item is greater than the previous one
|
||||||
|
[endsect:is_strictly_increasing]
|
||||||
|
|
||||||
|
[include clamp-hpp.qbk]
|
||||||
|
|
||||||
|
[section:clamp_range clamp_range ]
|
||||||
|
[*[^[link header.boost.algorithm.clamp_hpp clamp_range] ] ]
|
||||||
|
Perform [^clamp] on the elements of a range and write the results into an output iterator
|
||||||
|
[endsect:clamp_range]
|
||||||
|
|
||||||
|
[include find_not.qbk]
|
||||||
|
|
||||||
|
[include find_backward.qbk]
|
||||||
|
|
||||||
|
[section:find_not_backward find_not_backward ]
|
||||||
|
[*[^[link header.boost.algorithm.find_backward_hpp find_not_backward] ] ]
|
||||||
|
Find the last element in a sequence that does not equal a value.
|
||||||
|
See [link the_boost_algorithm_library.Misc.misc_inner_algorithms.find_backward find_backward].
|
||||||
|
[endsect:find_not_backward]
|
||||||
|
|
||||||
|
[section:find_if_backward find_if_backward ]
|
||||||
|
[*[^[link header.boost.algorithm.find_backward_hpp find_if_backward] ] ]
|
||||||
|
Find the last element in a sequence that satisfies a predicate.
|
||||||
|
See [link the_boost_algorithm_library.Misc.misc_inner_algorithms.find_backward find_backward].
|
||||||
|
[endsect:find_if_backward]
|
||||||
|
|
||||||
|
[section:find_if_not find_if_not ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.find_if_not_hpp find_if_not] ] ]
|
||||||
|
Find the first element in a sequence that does not satisfy a predicate.
|
||||||
|
See [link the_boost_algorithm_library.Misc.misc_inner_algorithms.find_not find_not].
|
||||||
|
[endsect:find_if_not]
|
||||||
|
|
||||||
|
[section:find_if_not_backward find_if_not_backward ]
|
||||||
|
[*[^[link header.boost.algorithm.find_backward_hpp find_if_not_backward] ] ]
|
||||||
|
Find the last element in a sequence that does not satisfy a predicate.
|
||||||
|
See [link the_boost_algorithm_library.Misc.misc_inner_algorithms.find_backward find_backward].
|
||||||
|
[endsect:find_if_not_backward]
|
||||||
|
|
||||||
|
[include gather.qbk]
|
||||||
|
|
||||||
|
[include hex.qbk]
|
||||||
|
|
||||||
|
[section:unhex unhex ]
|
||||||
|
[*[^[link header.boost.algorithm.hex_hpp unhex] ] ]
|
||||||
|
Convert a sequence of hexadecimal characters into a sequence of integers or characters
|
||||||
|
[endsect:unhex]
|
||||||
|
|
||||||
|
[section:hex_lower hex_lower ]
|
||||||
|
[*[^[link header.boost.algorithm.hex_hpp hex_lower] ] ]
|
||||||
|
Convert a sequence of integral types into a lower case hexadecimal sequence of characters
|
||||||
|
[endsect:hex_lower]
|
||||||
|
|
||||||
|
[include is_palindrome.qbk]
|
||||||
|
|
||||||
|
[include is_partitioned_until.qbk]
|
||||||
|
|
||||||
|
[section:apply_reverse_permutation apply_reverse_permutation ]
|
||||||
|
See below
|
||||||
|
[endsect:apply_reverse_permutation]
|
||||||
|
|
||||||
|
[include apply_permutation.qbk]
|
||||||
|
|
||||||
|
[section:copy_until copy_until ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.copy_if_hpp copy_until] ] ]
|
||||||
|
Copy all the elements at the start of the input range that do not satisfy the predicate to the output range
|
||||||
|
[endsect:copy_until]
|
||||||
|
|
||||||
|
[section:copy_while copy_while ]
|
||||||
|
[*[^[link header.boost.algorithm.cxx11.copy_if_hpp copy_while] ] ]
|
||||||
|
Copy all the elements at the start of the input range that satisfy the predicate to the output range
|
||||||
|
[endsect:copy_while]
|
||||||
|
|
||||||
|
[section:iota_n iota_n ]
|
||||||
|
[*[^[link boost.algorithm.iota_n iota_n] ] ]
|
||||||
|
Write a sequence of n increasing values to an output iterator
|
||||||
|
[endsect:iota_n]
|
||||||
|
|
||||||
|
[section:power power ]
|
||||||
|
[*[^[link header.boost.algorithm.algorithm_hpp power] ] ]
|
||||||
|
Raise a value to an integral power ([^constexpr] since C++14)
|
||||||
|
[endsect:power]
|
||||||
|
|
||||||
|
[endsect:misc_inner_algorithms]
|
||||||
|
|
||||||
|
[endsect:Misc]
|
||||||
|
|
||||||
|
|
||||||
|
[section:not_yet_documented_cxx17_algos Not-yet-documented C++17 Algorithms]
|
||||||
|
|
||||||
|
* [*[^[link header.boost.algorithm.cxx17.exclusive_scan_hpp exclusive_scan] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.cxx17.inclusive_scan_hpp inclusive_scan] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.cxx17.reduce_hpp reduce] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.cxx17.transform_exclusive_scan_hpp transform_exclusive_scan] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.cxx17.transform_inclusive_scan_hpp transform_inclusive_scan] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.cxx17.transform_reduce_hpp transform_reduce] ] ]
|
||||||
|
|
||||||
|
[endsect:not_yet_documented_cxx17_algos]
|
||||||
|
|
||||||
|
|
||||||
|
[section:not_yet_documented_other_algos Not-yet-documented Other Algorithms]
|
||||||
|
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_hpp minmax] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp first_max_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp first_min_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp first_min_first_max_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp first_min_last_max_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp last_max_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp last_min_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp last_min_first_max_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp last_min_last_max_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.minmax_element_hpp minmax_element] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.sort_subrange_hpp partition_subrange] ] ]
|
||||||
|
* [*[^[link header.boost.algorithm.sort_subrange_hpp sort_subrange] ] ]
|
||||||
|
|
||||||
|
[endsect:not_yet_documented_other_algos]
|
||||||
|
|
||||||
|
|
||||||
[xinclude autodoc.xml]
|
[xinclude autodoc.xml]
|
||||||
|
@ -9,7 +9,7 @@ Distributed under the Boost Software License, Version 1.0.
|
|||||||
(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
(See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
||||||
]
|
]
|
||||||
|
|
||||||
The header file 'apply_permutation.hpp' contains two algorithms, apply_permutation and apply_reverse_permutation. Also there are range-based versions.
|
The header file [^[link header.boost.algorithm.apply_permutation_hpp apply_permutation.hpp]] contains two algorithms, `apply_permutation` and `apply_reverse_permutation`. There are also range-based versions.
|
||||||
The algorithms transform the item sequence according to index sequence order.
|
The algorithms transform the item sequence according to index sequence order.
|
||||||
|
|
||||||
The routine `apply_permutation` takes a item sequence and a order sequence. It reshuffles item sequence according to order sequence. Every value in order sequence means where the item comes from. Order sequence needs to be exactly a permutation of the sequence [0, 1, ... , N], where N is the biggest index in the item sequence (zero-indexed).
|
The routine `apply_permutation` takes a item sequence and a order sequence. It reshuffles item sequence according to order sequence. Every value in order sequence means where the item comes from. Order sequence needs to be exactly a permutation of the sequence [0, 1, ... , N], where N is the biggest index in the item sequence (zero-indexed).
|
||||||
|
@ -18,8 +18,8 @@ project /boost/algorithm/example
|
|||||||
:
|
:
|
||||||
;
|
;
|
||||||
|
|
||||||
exe clamp_example : clamp_example.cpp ;
|
exe clamp_example : clamp_example.cpp : ;
|
||||||
exe search_example : search_example.cpp ;
|
exe search_example : search_example.cpp ;
|
||||||
exe is_palindrome_example : is_palindrome_example.cpp;
|
exe is_palindrome_example : is_palindrome_example.cpp : <cxxstd>11 ;
|
||||||
exe is_partitioned_until_example : is_partitioned_until_example.cpp;
|
exe is_partitioned_until_example : is_partitioned_until_example.cpp : <cxxstd>11 ;
|
||||||
exe apply_permutation_example : apply_permutation_example.cpp;
|
exe apply_permutation_example : apply_permutation_example.cpp : <cxxstd>11 ;
|
||||||
|
@ -32,8 +32,8 @@ struct isOddComp
|
|||||||
|
|
||||||
int main ( int /*argc*/, char * /*argv*/ [] )
|
int main ( int /*argc*/, char * /*argv*/ [] )
|
||||||
{
|
{
|
||||||
std::vector<int> good({1, 2, 4});
|
std::vector<int> good{1, 2, 4};
|
||||||
std::vector<int> bad({1, 2, 3});
|
std::vector<int> bad{1, 2, 3};
|
||||||
|
|
||||||
//Use custom function
|
//Use custom function
|
||||||
auto it1 = ba::is_partitioned_until(good.begin(), good.end(), isOdd);
|
auto it1 = ba::is_partitioned_until(good.begin(), good.end(), isOdd);
|
||||||
|
@ -27,7 +27,7 @@ int main ( int /*argc*/, char * /*argv*/ [] ) {
|
|||||||
// algorithms. They all have the same (dual) interface.
|
// algorithms. They all have the same (dual) interface.
|
||||||
|
|
||||||
// There is a procedural interface, based on std::search:
|
// There is a procedural interface, based on std::search:
|
||||||
if ( ba::boyer_moore_search ( haystack.begin (), haystack.end (), needle1.begin (), needle1.end ()) != haystack.end ())
|
if ( ba::boyer_moore_search ( haystack.begin (), haystack.end (), needle1.begin (), needle1.end ()) != std::make_pair(haystack.end(), haystack.end()))
|
||||||
std::cout << "Found '" << needle1 << "' in '" << haystack << "' (boyer-moore 1)" << std::endl;
|
std::cout << "Found '" << needle1 << "' in '" << haystack << "' (boyer-moore 1)" << std::endl;
|
||||||
else
|
else
|
||||||
std::cout << "Did NOT find '" << needle1 << "' in '" << haystack << "' (boyer-moore 1)" << std::endl;
|
std::cout << "Did NOT find '" << needle1 << "' in '" << haystack << "' (boyer-moore 1)" << std::endl;
|
||||||
@ -36,19 +36,19 @@ int main ( int /*argc*/, char * /*argv*/ [] ) {
|
|||||||
// you can create a search object and use that over and over again - amortizing the setup
|
// you can create a search object and use that over and over again - amortizing the setup
|
||||||
// costs across several searches
|
// costs across several searches
|
||||||
ba::boyer_moore<std::string::const_iterator> search1 ( needle1.begin (), needle1.end ());
|
ba::boyer_moore<std::string::const_iterator> search1 ( needle1.begin (), needle1.end ());
|
||||||
if ( search1 ( haystack.begin (), haystack.end ()) != haystack.end ())
|
if ( search1 ( haystack.begin (), haystack.end ()) != std::make_pair(haystack.end(), haystack.end()))
|
||||||
std::cout << "Found '" << needle1 << "' in '" << haystack << "' (boyer-moore 2)" << std::endl;
|
std::cout << "Found '" << needle1 << "' in '" << haystack << "' (boyer-moore 2)" << std::endl;
|
||||||
else
|
else
|
||||||
std::cout << "Did NOT find '" << needle1 << "' in '" << haystack << "' (boyer-moore 2)" << std::endl;
|
std::cout << "Did NOT find '" << needle1 << "' in '" << haystack << "' (boyer-moore 2)" << std::endl;
|
||||||
|
|
||||||
// There is also an implementation of boyer-moore-horspool searching
|
// There is also an implementation of boyer-moore-horspool searching
|
||||||
if ( ba::boyer_moore_horspool_search ( haystack.begin (), haystack.end (), needle1.begin (), needle1.end ()) != haystack.end ())
|
if ( ba::boyer_moore_horspool_search ( haystack.begin (), haystack.end (), needle1.begin (), needle1.end ()) != std::make_pair(haystack.end(), haystack.end()))
|
||||||
std::cout << "Found '" << needle1 << "' in '" << haystack << "' (boyer-moore-horspool)" << std::endl;
|
std::cout << "Found '" << needle1 << "' in '" << haystack << "' (boyer-moore-horspool)" << std::endl;
|
||||||
else
|
else
|
||||||
std::cout << "Did NOT find '" << needle1 << "' in '" << haystack << "' (boyer-moore-horspool)" << std::endl;
|
std::cout << "Did NOT find '" << needle1 << "' in '" << haystack << "' (boyer-moore-horspool)" << std::endl;
|
||||||
|
|
||||||
// And also the knuth-pratt-morris search algorithm
|
// And also the knuth-pratt-morris search algorithm
|
||||||
if ( ba::knuth_morris_pratt_search ( haystack.begin (), haystack.end (), needle1.begin (), needle1.end ()) != haystack.end ())
|
if ( ba::knuth_morris_pratt_search ( haystack.begin (), haystack.end (), needle1.begin (), needle1.end ()) != std::make_pair(haystack.end(), haystack.end()))
|
||||||
std::cout << "Found '" << needle1 << "' in '" << haystack << "' (knuth_morris_pratt)" << std::endl;
|
std::cout << "Found '" << needle1 << "' in '" << haystack << "' (knuth_morris_pratt)" << std::endl;
|
||||||
else
|
else
|
||||||
std::cout << "Did NOT find '" << needle1 << "' in '" << haystack << "' (knuth_morris_pratt)" << std::endl;
|
std::cout << "Did NOT find '" << needle1 << "' in '" << haystack << "' (knuth_morris_pratt)" << std::endl;
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
#include <functional> // for plus and multiplies
|
#include <functional> // for plus and multiplies
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/utility/enable_if.hpp> // for boost::disable_if
|
#include <boost/utility/enable_if.hpp> // for boost::disable_if
|
||||||
#include <boost/type_traits/is_integral.hpp>
|
#include <boost/type_traits/is_integral.hpp>
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
#include <type_traits>
|
#include <type_traits>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <iterator> // For std::iterator_traits
|
#include <iterator> // For std::iterator_traits
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/mpl/identity.hpp> // for identity
|
#include <boost/mpl/identity.hpp> // for identity
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#ifndef BOOST_ALGORITHM_ALL_OF_HPP
|
#ifndef BOOST_ALGORITHM_ALL_OF_HPP
|
||||||
#define BOOST_ALGORITHM_ALL_OF_HPP
|
#define BOOST_ALGORITHM_ALL_OF_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
#ifndef BOOST_ALGORITHM_ANY_OF_HPP
|
#ifndef BOOST_ALGORITHM_ANY_OF_HPP
|
||||||
#define BOOST_ALGORITHM_ANY_OF_HPP
|
#define BOOST_ALGORITHM_ANY_OF_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
#define BOOST_ALGORITHM_COPY_IF_HPP
|
#define BOOST_ALGORITHM_COPY_IF_HPP
|
||||||
|
|
||||||
#include <utility> // for std::pair, std::make_pair
|
#include <utility> // for std::pair, std::make_pair
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
#ifndef BOOST_ALGORITHM_COPY_N_HPP
|
#ifndef BOOST_ALGORITHM_COPY_N_HPP
|
||||||
#define BOOST_ALGORITHM_COPY_N_HPP
|
#define BOOST_ALGORITHM_COPY_N_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
namespace boost { namespace algorithm {
|
namespace boost { namespace algorithm {
|
||||||
|
|
||||||
/// \fn copy_n ( InputIterator first, Size n, OutputIterator result )
|
/// \fn copy_n ( InputIterator first, Size n, OutputIterator result )
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#ifndef BOOST_ALGORITHM_FIND_IF_NOT_HPP
|
#ifndef BOOST_ALGORITHM_FIND_IF_NOT_HPP
|
||||||
#define BOOST_ALGORITHM_FIND_IF_NOT_HPP
|
#define BOOST_ALGORITHM_FIND_IF_NOT_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#ifndef BOOST_ALGORITHM_IOTA_HPP
|
#ifndef BOOST_ALGORITHM_IOTA_HPP
|
||||||
#define BOOST_ALGORITHM_IOTA_HPP
|
#define BOOST_ALGORITHM_IOTA_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#ifndef BOOST_ALGORITHM_IS_PARTITIONED_HPP
|
#ifndef BOOST_ALGORITHM_IS_PARTITIONED_HPP
|
||||||
#define BOOST_ALGORITHM_IS_PARTITIONED_HPP
|
#define BOOST_ALGORITHM_IS_PARTITIONED_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include <functional> // for std::equal_to
|
#include <functional> // for std::equal_to
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/utility/enable_if.hpp>
|
#include <boost/utility/enable_if.hpp>
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#ifndef BOOST_ALGORITHM_NONE_OF_HPP
|
#ifndef BOOST_ALGORITHM_NONE_OF_HPP
|
||||||
#define BOOST_ALGORITHM_NONE_OF_HPP
|
#define BOOST_ALGORITHM_NONE_OF_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -12,11 +12,13 @@
|
|||||||
#ifndef BOOST_ALGORITHM_ONE_OF_HPP
|
#ifndef BOOST_ALGORITHM_ONE_OF_HPP
|
||||||
#define BOOST_ALGORITHM_ONE_OF_HPP
|
#define BOOST_ALGORITHM_ONE_OF_HPP
|
||||||
|
|
||||||
#include <boost/algorithm/cxx11/none_of.hpp>
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
#include <boost/algorithm/cxx11/none_of.hpp>
|
||||||
|
|
||||||
|
|
||||||
namespace boost { namespace algorithm {
|
namespace boost { namespace algorithm {
|
||||||
|
|
||||||
/// \fn one_of ( InputIterator first, InputIterator last, Predicate p )
|
/// \fn one_of ( InputIterator first, InputIterator last, Predicate p )
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include <iterator> // for std::distance, advance
|
#include <iterator> // for std::distance, advance
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
namespace boost { namespace algorithm {
|
namespace boost { namespace algorithm {
|
||||||
|
|
||||||
namespace detail {
|
namespace detail {
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include <functional> // for std::equal_to
|
#include <functional> // for std::equal_to
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/algorithm/cxx11/is_permutation.hpp>
|
#include <boost/algorithm/cxx11/is_permutation.hpp>
|
||||||
#include <boost/algorithm/cxx14/mismatch.hpp>
|
#include <boost/algorithm/cxx14/mismatch.hpp>
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#define BOOST_ALGORITHM_MISMATCH_HPP
|
#define BOOST_ALGORITHM_MISMATCH_HPP
|
||||||
|
|
||||||
#include <utility> // for std::pair
|
#include <utility> // for std::pair
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
namespace boost { namespace algorithm {
|
namespace boost { namespace algorithm {
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <functional> // for std::plus
|
#include <functional> // for std::plus
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
#include <utility> // for std::pair
|
#include <utility> // for std::pair
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
namespace boost { namespace algorithm {
|
namespace boost { namespace algorithm {
|
||||||
|
|
||||||
/// \fn for_each_n(InputIterator first, Size n, Function f);
|
/// \fn for_each_n(InputIterator first, Size n, Function f);
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <functional> // for std::plus
|
#include <functional> // for std::plus
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <functional> // for std::plus
|
#include <functional> // for std::plus
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <functional> // for std::plus
|
#include <functional> // for std::plus
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <functional> // for std::plus
|
#include <functional> // for std::plus
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
#include <functional> // for std::plus
|
#include <functional> // for std::plus
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/range/value_type.hpp>
|
#include <boost/range/value_type.hpp>
|
||||||
|
@ -7,13 +7,12 @@
|
|||||||
#ifndef BOOST_ALGORITHM_FIND_BACKWARD_HPP
|
#ifndef BOOST_ALGORITHM_FIND_BACKWARD_HPP
|
||||||
#define BOOST_ALGORITHM_FIND_BACKWARD_HPP
|
#define BOOST_ALGORITHM_FIND_BACKWARD_HPP
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
|
|
||||||
namespace boost { namespace algorithm {
|
namespace boost { namespace algorithm {
|
||||||
|
|
||||||
template<typename BidiIter, typename T>
|
template<typename BidiIter, typename T>
|
||||||
|
@ -7,13 +7,12 @@
|
|||||||
#ifndef BOOST_ALGORITHM_FIND_NOT_HPP
|
#ifndef BOOST_ALGORITHM_FIND_NOT_HPP
|
||||||
#define BOOST_ALGORITHM_FIND_NOT_HPP
|
#define BOOST_ALGORITHM_FIND_NOT_HPP
|
||||||
|
|
||||||
|
#include <utility>
|
||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
#include <utility>
|
|
||||||
|
|
||||||
|
|
||||||
namespace boost { namespace algorithm {
|
namespace boost { namespace algorithm {
|
||||||
|
|
||||||
template<typename InputIter, typename Sentinel, typename T>
|
template<typename InputIter, typename Sentinel, typename T>
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <algorithm> // for std::stable_partition
|
#include <algorithm> // for std::stable_partition
|
||||||
#include <functional>
|
#include <functional>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/bind.hpp> // for boost::bind
|
#include <boost/bind.hpp> // for boost::bind
|
||||||
#include <boost/range/begin.hpp> // for boost::begin(range)
|
#include <boost/range/begin.hpp> // for boost::begin(range)
|
||||||
#include <boost/range/end.hpp> // for boost::end(range)
|
#include <boost/range/end.hpp> // for boost::end(range)
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
#include <stdexcept>
|
#include <stdexcept>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
#include <boost/exception/exception.hpp>
|
#include <boost/exception/exception.hpp>
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include <functional>
|
#include <functional>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#ifndef BOOST_ALGORITHM_IS_PARTITIONED_UNTIL_HPP
|
#ifndef BOOST_ALGORITHM_IS_PARTITIONED_UNTIL_HPP
|
||||||
#define BOOST_ALGORITHM_IS_PARTITIONED_UNTIL_HPP
|
#define BOOST_ALGORITHM_IS_PARTITIONED_UNTIL_HPP
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/tuple/tuple.hpp> // for using pairs with boost::cref
|
#include <boost/tuple/tuple.hpp> // for using pairs with boost::cref
|
||||||
#include <boost/ref.hpp>
|
#include <boost/ref.hpp>
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@
|
|||||||
|
|
||||||
#include <utility> // for std::pair and std::make_pair
|
#include <utility> // for std::pair and std::make_pair
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
|
|
||||||
namespace boost {
|
namespace boost {
|
||||||
|
|
||||||
namespace detail { // for obtaining a uniform version of minmax_element
|
namespace detail { // for obtaining a uniform version of minmax_element
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/assert.hpp>
|
#include <boost/assert.hpp>
|
||||||
#include <boost/static_assert.hpp>
|
#include <boost/static_assert.hpp>
|
||||||
|
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
|
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/assert.hpp>
|
#include <boost/assert.hpp>
|
||||||
#include <boost/static_assert.hpp>
|
#include <boost/static_assert.hpp>
|
||||||
|
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
#include <vector>
|
#include <vector>
|
||||||
#include <iterator> // for std::iterator_traits
|
#include <iterator> // for std::iterator_traits
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/assert.hpp>
|
#include <boost/assert.hpp>
|
||||||
#include <boost/static_assert.hpp>
|
#include <boost/static_assert.hpp>
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <iterator> // For std::iterator_traits
|
#include <iterator> // For std::iterator_traits
|
||||||
#include <algorithm> // For nth_element and partial_sort
|
#include <algorithm> // For nth_element and partial_sort
|
||||||
|
|
||||||
|
#include <boost/config.hpp>
|
||||||
#include <boost/range/begin.hpp>
|
#include <boost/range/begin.hpp>
|
||||||
#include <boost/range/end.hpp>
|
#include <boost/range/end.hpp>
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user