forked from boostorg/algorithm
Compare commits
53 Commits
boost-1.43
...
svn-branch
Author | SHA1 | Date | |
---|---|---|---|
5040e545e1 | |||
31b5842441 | |||
4515bc182e | |||
7e2e6856cc | |||
235c81be61 | |||
1eb3d83534 | |||
8f2b8d4888 | |||
6c0f953c01 | |||
e439792494 | |||
236b142308 | |||
9bad789175 | |||
d84f81d841 | |||
ce98e8b87e | |||
e8a2596637 | |||
7b2754b937 | |||
784402e5c0 | |||
1188575e7b | |||
bff2a1e112 | |||
6d5e7b5a04 | |||
760af1798b | |||
1f5542b44c | |||
baf3dd99e2 | |||
7299b29bf8 | |||
539c170b9d | |||
c81ee948b7 | |||
ba5e4c30c6 | |||
cd26ed816c | |||
4e15767bed | |||
9fa2f90db4 | |||
35f317aeac | |||
d0a03fdb4e | |||
346f032be2 | |||
a389d768c4 | |||
90fca39906 | |||
5b24f31486 | |||
b25d6511b3 | |||
1541a554f5 | |||
7a97b3390e | |||
6e5a7497ae | |||
f0b8b60379 | |||
66019abb2f | |||
8758222006 | |||
4eef56761a | |||
b94a3fbfba | |||
614cc2ebab | |||
869660ed14 | |||
777f30780e | |||
26aa37733b | |||
f1e60579c2 | |||
389dd3c863 | |||
f23f61ae9b | |||
608112b112 | |||
b21b54dc4e |
@ -92,11 +92,11 @@ Synopsis of <tt><boost/algorithm/minmax.hpp></tt></h3>
|
|||||||
namespace boost {
|
namespace boost {
|
||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
tuple<T const&, T const&> >
|
tuple<T const&, T const&>
|
||||||
minmax(const T& a, const T& b);
|
minmax(const T& a, const T& b);
|
||||||
|
|
||||||
template <class T, class <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">BinaryPredicate</a>>
|
template <class T, class <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html">BinaryPredicate</a>>
|
||||||
tuple<T const&, T const&> >
|
tuple<T const&, T const&>
|
||||||
minmax(const T& a, const T& b, BinaryPredicate comp);
|
minmax(const T& a, const T& b, BinaryPredicate comp);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -243,7 +243,7 @@ range
|
|||||||
|
|
||||||
<a name="complexity">
|
<a name="complexity">
|
||||||
<h3>
|
<h3>
|
||||||
<a NAME="Complexity"></a>Complexity</h3>
|
Complexity</h3>
|
||||||
Minmax performs a single comparison and is otherwise of constant complexity.
|
Minmax performs a single comparison and is otherwise of constant complexity.
|
||||||
The use of <tt>boost::tuple<T const&></tt> prevents copy
|
The use of <tt>boost::tuple<T const&></tt> prevents copy
|
||||||
constructors in case the arguments are passed by reference.
|
constructors in case the arguments are passed by reference.
|
||||||
@ -438,7 +438,7 @@ comparisons).</p>
|
|||||||
slower than
|
slower than
|
||||||
<tt>first_min_element</tt> alone, still much less than <tt>first_min_element</tt>
|
<tt>first_min_element</tt> alone, still much less than <tt>first_min_element</tt>
|
||||||
and
|
and
|
||||||
<tt>last_max_element</tt> called separately. <a href="#Performance">[2]</a>
|
<tt>last_max_element</tt> called separately. <a href="#Note2">[2]</a>
|
||||||
|
|
||||||
<h4><b>Why algorithms and not accumulators?</b></h4>
|
<h4><b>Why algorithms and not accumulators?</b></h4>
|
||||||
<p>The minmax algorithms are useful in computing the extent of a range.
|
<p>The minmax algorithms are useful in computing the extent of a range.
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
<emphasis role="bold">Definition:</emphasis> A string is a
|
<emphasis role="bold">Definition:</emphasis> A string is a
|
||||||
<ulink url="../../libs/range/doc/range.html">range</ulink> of characters accessible in sequential
|
<ulink url="../../libs/range/index.html">range</ulink> of characters accessible in sequential
|
||||||
ordered fashion. Character is any value type with "cheap" copying and assignment.
|
ordered fashion. Character is any value type with "cheap" copying and assignment.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<librarypurpose>
|
<librarypurpose>
|
||||||
A set of generic string-related algorithms and utilities
|
A set of generic string-related algorithms and utilities
|
||||||
</librarypurpose>
|
</librarypurpose>
|
||||||
<librarycategory name="category:algoritms"/>
|
<librarycategory name="category:algorithms"/>
|
||||||
<librarycategory name="category:string-text"/>
|
<librarycategory name="category:string-text"/>
|
||||||
</libraryinfo>
|
</libraryinfo>
|
||||||
|
|
||||||
|
@ -57,7 +57,7 @@
|
|||||||
The magic of <ulink url="../../libs/range/index.html">Boost.Range</ulink>
|
The magic of <ulink url="../../libs/range/index.html">Boost.Range</ulink>
|
||||||
provides a uniform way of handling different string types.
|
provides a uniform way of handling different string types.
|
||||||
If there is a need to pass a pair of iterators,
|
If there is a need to pass a pair of iterators,
|
||||||
<ulink url="../../libs/range/doc/utility_class.html"><code>boost::iterator_range</code></ulink>
|
<ulink url="../../libs/range/doc/html/range/utilities/iterator_range.html"><code>boost::iterator_range</code></ulink>
|
||||||
can be used to package iterators into a structure with a compatible interface.
|
can be used to package iterators into a structure with a compatible interface.
|
||||||
</para>
|
</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
@ -208,7 +208,7 @@
|
|||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
We have used <functionname>find_last()</functionname> to search the <code>text</code> for "ll".
|
We have used <functionname>find_last()</functionname> to search the <code>text</code> for "ll".
|
||||||
The result is given in the <ulink url="../../libs/range/doc/utility_class.html"><code>boost::iterator_range</code></ulink>.
|
The result is given in the <ulink url="../../libs/range/doc/html/range/utilities/iterator_range.html"><code>boost::iterator_range</code></ulink>.
|
||||||
This range delimits the
|
This range delimits the
|
||||||
part of the input which satisfies the find criteria. In our example it is the last occurrence of "ll".
|
part of the input which satisfies the find criteria. In our example it is the last occurrence of "ll".
|
||||||
|
|
||||||
@ -217,7 +217,7 @@
|
|||||||
<ulink url="../../libs/range/index.html">Boost.Range</ulink>.
|
<ulink url="../../libs/range/index.html">Boost.Range</ulink>.
|
||||||
|
|
||||||
The following lines transform the result. Notice that
|
The following lines transform the result. Notice that
|
||||||
<ulink url="../../libs/range/doc/utility_class.html"><code>boost::iterator_range</code></ulink> has familiar
|
<ulink url="../../libs/range/doc/html/range/utilities/iterator_range.html"><code>boost::iterator_range</code></ulink> has familiar
|
||||||
<code>begin()</code> and <code>end()</code> methods, so it can be used like any other STL container.
|
<code>begin()</code> and <code>end()</code> methods, so it can be used like any other STL container.
|
||||||
Also it is convertible to bool therefore it is easy to use find algorithms for a simple containment checking.
|
Also it is convertible to bool therefore it is easy to use find algorithms for a simple containment checking.
|
||||||
</para>
|
</para>
|
||||||
@ -264,7 +264,7 @@
|
|||||||
the find iterator allows us to iterate over the substrings matching the specified criteria.
|
the find iterator allows us to iterate over the substrings matching the specified criteria.
|
||||||
This facility is using the <link linkend="string_algo.finder_concept">Finder</link> to incrementally
|
This facility is using the <link linkend="string_algo.finder_concept">Finder</link> to incrementally
|
||||||
search the string.
|
search the string.
|
||||||
Dereferencing a find iterator yields an <ulink url="../../libs/range/doc/utility_class.html"><code>boost::iterator_range</code></ulink>
|
Dereferencing a find iterator yields an <ulink url="../../libs/range/doc/html/range/utilities/iterator_range.html"><code>boost::iterator_range</code></ulink>
|
||||||
object, that delimits the current match.
|
object, that delimits the current match.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@ -339,7 +339,7 @@
|
|||||||
typedef vector< string > split_vector_type;
|
typedef vector< string > split_vector_type;
|
||||||
|
|
||||||
split_vector_type SplitVec; // #2: Search for tokens
|
split_vector_type SplitVec; // #2: Search for tokens
|
||||||
split( SplitVec, str1, is_any_of("-*") ); // SplitVec == { "hello abc","ABC","aBc goodbye" }
|
split( SplitVec, str1, is_any_of("-*"), token_compress_on ); // SplitVec == { "hello abc","ABC","aBc goodbye" }
|
||||||
</programlisting>
|
</programlisting>
|
||||||
<para>
|
<para>
|
||||||
<code>[hello]</code> designates an <code>iterator_range</code> delimiting this substring.
|
<code>[hello]</code> designates an <code>iterator_range</code> delimiting this substring.
|
||||||
|
Reference in New Issue
Block a user