blob: 7ab069e88ed7e2330f3a34cb66fc53b5c238aa5a [file] [log] [blame]
<HTML>
<HEAD>
<TITLE>About This Manual</TITLE>
<LINK REL=StyleSheet HREF="../rw.css" TYPE="text/css" TITLE="Apache stdcxx Stylesheet"></HEAD>
<BODY BGCOLOR=#FFFFFF>
<A HREF="1-4.html"><IMG SRC="images/bprev.gif" WIDTH=20 HEIGHT=21 ALT="Previous file" BORDER=O></A><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><A HREF="1-6.html"><IMG SRC="images/bnext.gif" WIDTH=25 HEIGHT=21 ALT="Next file" BORDER=O></A><DIV CLASS="DOCUMENTNAME"><B>Apache C++ Standard Library User's Guide</B></DIV>
<H2>1.5 About This Manual</H2>
<A NAME="151"><H3>1.5.1 Assumptions</H3></A>
<P>This manual assumes that you are familiar with the basic features of the C++ programming language. If you are new to C++, you may want to start with an introductory text, such as <I>The C++ Programming Language</I> by Bjarne Stroustrup (Addison-Wesley, 1997).</P>
<A NAME="152"><H3>1.5.2 Conventions</H3></A>
<A NAME="idx7"><!></A>
<P>This manual uses some distinctive terms and conventions. </P>
<P><I>Abbreviations</I> are common. Template abbreviations are very common, since the C++ Standard Library contains so many long names for class and function templates. For example, in the iostreams part of the documentation, <SAMP>fstream</SAMP> stands for <SAMP>template &lt;class charT, class traits&gt; class basic_fstream</SAMP>. The term <I>filestream </I>stands for the abstract notion of the file stream class template. <SAMP>badbit&nbsp;</SAMP>stands for the state flag <SAMP>std::ios_base::badbit</SAMP>.</P>
<P><I>Hierarchy diagrams</I> use the formal template declarations. In the hierarchy diagrams, the standard UML arrow:</P>
<P><IMG SRC="images/stdlibug-Overviewa.gif" WIDTH=240 HEIGHT=98></P>
<P>indicates that class <B><I>B</I></B> inherits from class <B><I>A</I></B>. </P>
<A NAME="idx8"><!></A>
<P>The term <I>algorithm</I> indicates functions in the generic algorithms portion of the C++ Standard Library. This is intended to avoid confusion with member functions, argument functions, and user-defined functions. </P>
<P>An <I>empty pair of parentheses</I> <SAMP>()</SAMP> follows function names and algorithm names, so as to avoid emphasizing their arguments. Arguments may be omitted for clarity.</P>
<P>An <I>underline character</I> <SAMP>_</SAMP> is used as a separator in both class names and function names. </P>
<P><I>Special fonts</I> set off class names, code samples, and special meanings, as shown in&nbsp;<A HREF="1-5.html#Table&nbsp;2">Table&nbsp;2</A>:.</P>
<H4><A NAME="Table&nbsp;2">Table&nbsp;2: Typographic conventions</A></H4>
<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="3">
<tr><td valign=top><B>Convention</B>
</td><td valign=top><B>Purpose</B>
</td><td valign=top><B>Example</B>
</td></tr>
<tr><td valign=top><P CLASS="TABLE"><SAMP>Courier</SAMP></P>
</td><td valign=top><P CLASS="TABLE">Code, examples, function names, file names, directory names, and operating system commands.</P>
</td><td valign=top><P CLASS="TABLE"><SAMP>return result;</SAMP></P>
</td></tr>
<tr><td valign=top><P CLASS="TABLE"><I>italic</I></P>
</td><td valign=top><P CLASS="TABLE">Conventional uses such as emphasis, titles, and new terms.</P>
</td><td valign=top><P CLASS="TABLE">A comparison function object is...</P>
</td></tr>
<tr><td valign=top><P CLASS="TABLE"><B>bold</B></P>
</td><td valign=top><P CLASS="TABLE">Conventional uses such as <B>emphasis</B>.</P>
<P CLASS="TABLE">Commands from an interface.</P>
</td><td valign=top><P CLASS="TABLE"><B>Always</B> read the manual.<br></P>
<P CLASS="TABLE">Click on the <B>OK</B> button.</P>
</td></tr>
<tr><td valign=top><P CLASS="TABLE"><B><I>bold italic</I></B></P>
</td><td valign=top><P CLASS="TABLE">Class names.</P>
</td><td valign=top><P CLASS="TABLE"><B><I><A HREF="../stdlibref/priority-queue.html">priority_queue</A></I></B></P>
</td></tr>
</TABLE>
<P>Throughout this guide, we use the character <SAMP>\</SAMP> to separate directory names. If you use UNIX, change <SAMP>\</SAMP> to <SAMP>/</SAMP>.</P>
<A NAME="153"><H3>1.5.3 Organization</H3></A>
<P>This manual is organized into eight parts:</P>
<UL>
<LI><P CLASS="LIST"><B><A HREF="I.html">Part&nbsp;I, "Introduction,"</A></B> provides overviews of the product, the documentation, and this manual, <I>The C++ Standard Library Module User's Guide</I>. </P></LI>
<LI><P CLASS="LIST"><B><A HREF="II.html">Part&nbsp;II, "Fundamentals,"</A></B> explains the fundamental C++ Standard Library concepts of iterators, functions, and predicates.</P></LI>
<LI><P CLASS="LIST"><B><A HREF="III.html">Part&nbsp;III, "Containers,"</A></B> gives an overview of the data structures called <I>containers</I>, and devotes a chapter to describing each container in detail with an example. </P></LI>
<LI><P CLASS="LIST"><B><A HREF="IV.html">Part&nbsp;IV, "Algorithms,"</A></B> deals with the algorithms, devoting one chapter to the generic algorithms, and another to the generic algorithms specific to ordered collections. Within the two algorithm chapters, each kind of algorithm is explained in its own section with an example and a reference to the file containing the complete source code. </P></LI>
<LI><P CLASS="LIST"><B><A HREF="V.html">Part&nbsp;V, "Special Techniques,"</A></B> describes techniques such as using allocators, building containers and generic algorithms, using the traits technique, and dealing with exceptions.</P></LI>
<LI><P CLASS="LIST"><B><A HREF="VI.html">Part&nbsp;VI, "Special Classes,"</A></B> devotes a chapter to each of the four unique classes <B><I><A HREF="../stdlibref/auto-ptr.html">auto_ptr</A></I></B>, <B><I><A HREF="../stdlibref/complex.html">complex</A></I></B>, <B><I><A HREF="../stdlibref/numeric-limits.html">numeric_limits</A></I></B>, and <B><I><A HREF="../stdlibref/valarray.html">valarray</A></I></B>.</P></LI>
<LI><P CLASS="LIST"><B><A HREF="VII.html">Part&nbsp;VII, "Locales,"</A></B> describes the basics of internationalization. It explains the differences between the C locale and the C++ locale. It defines a C++ locale and a facet, and tells how locales are created, composed, used, and replaced. It includes a complex example of a user-defined facet, which demonstrates how facets can be built and used in conjunction with iostreams.</P></LI>
<LI><P CLASS="LIST"><B><A HREF="VIII.html">Part&nbsp;VIII, "Iostreams,"</A></B> explains the C++ stream input and output facilities commonly called <I>iostreams</I>. Beginning chapters cover the iostreams facility, how it works, and how it should be used; also, the iostreams architecture, its components, and class hierarchy. Middle chapters cover the basic operation of iostreams, and both simple and advanced techniques for extending the iostreams framework. Final chapters describe the main differences between the C++ Standard Library iostreams, the traditional iostreams, and the implementation of iostreams in the Apache C++ Standard Library. </P></LI>
</UL>
<A NAME="154"><H3>1.5.4 Reading Suggestion</H3></A>
<P>The first time you read this manual it may be hard to know where to start. The container definitions form the heart of the library, but you can't really appreciate them without understanding the algorithms that so greatly extend their functionality. On the other hand, you can't really understand the algorithms without some appreciation of the containers. </P>
<P>A good approach is to read <B>Part II Fundamentals</B> carefully. Next, skim the definitions of the containers in <B>Part III Containers</B> and the descriptions of the algorithms in <B>Part IV Algorithms</B>, then go back and read these parts in more detail. You can then proceed to the more specialized areas of the manual.</P>
<BR>
<HR>
<A HREF="1-4.html"><IMG SRC="images/bprev.gif" WIDTH=20 HEIGHT=21 ALT="Previous file" BORDER=O></A><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><A HREF="booktoc.html"><IMG SRC="images/btoc.gif" WIDTH=56 HEIGHT=21 ALT="Contents" BORDER=O></A><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><A HREF="1-6.html"><IMG SRC="images/bnext.gif" WIDTH=20 HEIGHT=21 ALT="Next file" BORDER=O></A>
<!-- Google Analytics tracking code -->
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-1775151-1";
urchinTracker();
</script>
<!-- end of Google Analytics tracking code -->
</BODY>
</HTML>