mirror of
https://github.com/boostorg/algorithm.git
synced 2025-06-29 05:50:57 +02:00
46 lines
2.6 KiB
XML
46 lines
2.6 KiB
XML
![]() |
<?xml version="1.0" encoding="utf-8"?>
|
||
|
<!DOCTYPE library PUBLIC "-//Boost//DTD BoostBook XML V1.0//EN"
|
||
|
"http://www.boost.org/tools/boostbook/dtd/boostbook.dtd">
|
||
|
<section id="string_algo.intro" last-revision="$Date$">
|
||
|
<title>Introduction</title>
|
||
|
|
||
|
<para>
|
||
|
The String Algorithm Library provides a generic implementation of
|
||
|
string-related algorithms which are missing in STL. It is an extension
|
||
|
to the algorithms library of STL and it includes trimming, case conversion,
|
||
|
predicates and find/replace functions. All of them come in different variants
|
||
|
so it is easier to choose the best fit for a particular need.
|
||
|
</para>
|
||
|
<para>
|
||
|
The implementation is not restricted to work with a particular container
|
||
|
(like a <code>std::basic_string</code>), rather it is as generic as
|
||
|
possible. This generalization is not compromising the performance since
|
||
|
algorithms are using container specific features when it means a performance
|
||
|
gain.
|
||
|
</para>
|
||
|
<para>
|
||
|
The library has layered structure to simplify the usage without sacrificing the
|
||
|
generalization.
|
||
|
|
||
|
The easy-to-use interface, defined in the namespace <code>boost</code>, represents the first layer.
|
||
|
Algorithms and classes defined here do not offer a lot of customization opportunities
|
||
|
rather they are provided in more different variants, so a user can chose the
|
||
|
one that suits her needs.
|
||
|
|
||
|
The second layer, defined in the namespace <code>boost::string_algo</code>, on the
|
||
|
other hand, is generic. Basically it contains the same set of algorithms as the first layer,
|
||
|
but the interface is more flexible and allows more customization, but it is harder to use.
|
||
|
The first layer is implemented as set of wrappers around the second layer.
|
||
|
</para>
|
||
|
<para>
|
||
|
The documentation is divided into several sections. For a quick start read the
|
||
|
<link linkend="string_algo.usage">Usage</link> section.
|
||
|
<link linkend="string_algo.design">The Design Topics</link>,
|
||
|
<link linkend="string_algo.concept">Concepts</link> and <link linkend="string_algo.rationale">Rationale</link>
|
||
|
provide some explanation about the library design and structure an explain how it should be used.
|
||
|
See the <link linkend="string_algo.reference">Reference</link> for the complete list of provided utilities
|
||
|
and algorithms. Functions and classes in the reference are organized by the headers in which they are defined.
|
||
|
The reference contains links to the detailed description for every entity in the library.
|
||
|
</para>
|
||
|
</section>
|