blob: 3a8cd4c4edccb897cfd2bf478af264a49f702f97 [file] [log] [blame]
<HTML>
<HEAD>
<TITLE>Comprehensive Table of Contents</TITLE>
<LINK REL=StyleSheet HREF="../rw.css" TYPE="text/css" TITLE="Apache stdcxx Stylesheet"></HEAD>
<BODY BGCOLOR=#FFFFFF>
<IMG SRC="images/bnoprev.gif" WIDTH=20 HEIGHT=21 ALT="No previous file" BORDER=O><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><IMG SRC="images/bnotoc.gif" WIDTH=56 HEIGHT=21 ALT="No link" BORDER=O><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><IMG SRC="images/bnonext.gif" WIDTH=25 HEIGHT=21 ALT="No next file" BORDER=O><DIV CLASS="DOCUMENTNAME"><B>Apache C++ Standard Library User's Guide</B></DIV>
<H2>Table of Contents</H2>
<P>There is also a <A HREF="lists.html">listing of tables, figures, and captioned examples</A>.</P>
<UL>
<H2><A HREF="I.html">Part I: Introduction</A></H2>
<H2><A HREF="1.html">Chapter 1: Overview</A></H2>
<UL><LI><A HREF="1-1.html">1.1 Welcome</A></LI></UL>
<UL><LI><A HREF="1-2.html">1.2 Product Overview</A></LI></UL>
<UL><UL><LI><A HREF="1-2.html#121">1.2.1 Components</A></LI></UL></UL>
<UL><UL><LI><A HREF="1-2.html#122">1.2.2 STL Not Object-Oriented</A></LI></UL></UL>
<UL><UL><LI><A HREF="1-2.html#123">1.2.3 Relationship to the Essential Tools Module</A></LI></UL></UL>
<UL><LI><A HREF="1-3.html">1.3 Usage Notes</A></LI></UL>
<UL><UL><LI><A HREF="1-3.html#131">1.3.1 Compatibility Issues</A></LI></UL></UL>
<UL><UL><LI><A HREF="1-3.html#132">1.3.2 The std Namespace</A></LI></UL></UL>
<UL><LI><A HREF="1-4.html">1.4 Documentation Overview</A></LI></UL>
<UL><UL><LI><A HREF="1-4.html#141">1.4.1 Locations of Online Documentation</A></LI></UL></UL>
<UL><LI><A HREF="1-5.html">1.5 About This Manual</A></LI></UL>
<UL><UL><LI><A HREF="1-5.html#151">1.5.1 Assumptions</A></LI></UL></UL>
<UL><UL><LI><A HREF="1-5.html#152">1.5.2 Conventions</A></LI></UL></UL>
<UL><UL><LI><A HREF="1-5.html#153">1.5.3 Organization</A></LI></UL></UL>
<UL><UL><LI><A HREF="1-5.html#154">1.5.4 Reading Suggestion</A></LI></UL></UL>
<UL><LI><A HREF="1-6.html">1.6 Consulting Services and Training</A></LI></UL>
<UL><LI><A HREF="1-7.html">1.7 Technical Support</A></LI></UL>
<UL><UL><LI><A HREF="1-7.html#171">1.7.1 To Obtain Technical Support</A></LI></UL></UL>
<UL><UL><LI><A HREF="1-7.html#172">1.7.2 How to Contact Technical Support</A></LI></UL></UL>
<H2><A HREF="II.html">Part II: Fundamentals</A></H2>
<H2><A HREF="2.html">Chapter 2: Iterators</A></H2>
<UL><LI><A HREF="2-1.html">2.1 Introduction to Iterators</A></LI></UL>
<UL><LI><A HREF="2-2.html">2.2 Varieties of Iterators</A></LI></UL>
<UL><UL><LI><A HREF="2-2.html#221">2.2.1 Input Iterators</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="2-2.html#221-1">2.2.1.1 Kinds of Input Iterators</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="2-2.html#222">2.2.2 Output Iterators</A></LI></UL></UL>
<UL><UL><LI><A HREF="2-2.html#223">2.2.3 Forward Iterators</A></LI></UL></UL>
<UL><UL><LI><A HREF="2-2.html#224">2.2.4 Bidirectional Iterators</A></LI></UL></UL>
<UL><UL><LI><A HREF="2-2.html#225">2.2.5 Random Access Iterators</A></LI></UL></UL>
<UL><UL><LI><A HREF="2-2.html#226">2.2.6 Reverse Iterators</A></LI></UL></UL>
<UL><LI><A HREF="2-3.html">2.3 Stream Iterators</A></LI></UL>
<UL><UL><LI><A HREF="2-3.html#231">2.3.1 Input Stream Iterators</A></LI></UL></UL>
<UL><UL><LI><A HREF="2-3.html#232">2.3.2 Output Stream Iterators</A></LI></UL></UL>
<UL><LI><A HREF="2-4.html">2.4 Insert Iterators</A></LI></UL>
<UL><LI><A HREF="2-5.html">2.5 Iterator Operations</A></LI></UL>
<H2><A HREF="3.html">Chapter 3: Functions and Predicates</A></H2>
<UL><LI><A HREF="3-1.html">3.1 Functions</A></LI></UL>
<UL><LI><A HREF="3-2.html">3.2 Function Objects</A></LI></UL>
<UL><UL><LI><A HREF="3-2.html#321">3.2.1 Definition</A></LI></UL></UL>
<UL><UL><LI><A HREF="3-2.html#322">3.2.2 Use</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="3-2.html#322-1">3.2.2.1 To Employ Existing C++ Standard Library Function Objects</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="3-2.html#322-2">3.2.2.2 To Improve Execution</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="3-2.html#322-3">3.2.2.3 To Access or Set State Information</A></LI></UL></UL></UL>
<UL><LI><A HREF="3-3.html">3.3 Predicates</A></LI></UL>
<UL><LI><A HREF="3-4.html">3.4 Function Adaptors</A></LI></UL>
<UL><UL><LI><A HREF="3-4.html#341">3.4.1 Definition</A></LI></UL></UL>
<UL><UL><LI><A HREF="3-4.html#342">3.4.2 Adapting Non-member or Static Member Functions</A></LI></UL></UL>
<UL><UL><LI><A HREF="3-4.html#343">3.4.3 Adapting Member Functions</A></LI></UL></UL>
<UL><LI><A HREF="3-5.html">3.5 Negators and Binders</A></LI></UL>
<H2><A HREF="III.html">Part III: Containers</A></H2>
<H2><A HREF="4.html">Chapter 4: Container Classes</A></H2>
<UL><LI><A HREF="4-1.html">4.1 Overview</A></LI></UL>
<UL><LI><A HREF="4-2.html">4.2 Selecting a Container</A></LI></UL>
<UL><LI><A HREF="4-3.html">4.3 Memory Management Issues</A></LI></UL>
<UL><LI><A HREF="4-4.html">4.4 Container Types Not Found in the C++ Standard Library</A></LI></UL>
<H2><A HREF="5.html">Chapter 5: vector and vector&lt;bool&gt;</A></H2>
<UL><LI><A HREF="5-1.html">5.1 The vector Data Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="5-1.html#511">5.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="5-2.html">5.2 vector Operations</A></LI></UL>
<UL><UL><LI><A HREF="5-2.html#521">5.2.1 Declaration and Initialization of vectors</A></LI></UL></UL>
<UL><UL><LI><A HREF="5-2.html#522">5.2.2 Type Definitions</A></LI></UL></UL>
<UL><UL><LI><A HREF="5-2.html#523">5.2.3 Subscripting a vector</A></LI></UL></UL>
<UL><UL><LI><A HREF="5-2.html#524">5.2.4 Extent and Size-Changing Operations</A></LI></UL></UL>
<UL><UL><LI><A HREF="5-2.html#525">5.2.5 Inserting and Removing Elements</A></LI></UL></UL>
<UL><UL><LI><A HREF="5-2.html#526">5.2.6 Iteration</A></LI></UL></UL>
<UL><UL><LI><A HREF="5-2.html#527">5.2.7 Test for Inclusion</A></LI></UL></UL>
<UL><UL><LI><A HREF="5-2.html#528">5.2.8 Sorting and Sorted vector Operations</A></LI></UL></UL>
<UL><UL><LI><A HREF="5-2.html#529">5.2.9 Useful Generic Algorithms</A></LI></UL></UL>
<UL><LI><A HREF="5-3.html">5.3 Boolean Vectors</A></LI></UL>
<UL><LI><A HREF="5-4.html">5.4 Example Program: The Sieve of Eratosthenes</A></LI></UL>
<H2><A HREF="6.html">Chapter 6: list</A></H2>
<UL><LI><A HREF="6-1.html">6.1 The list Data Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="6-1.html#611">6.1.1 Include files</A></LI></UL></UL>
<UL><LI><A HREF="6-2.html">6.2 list Operations</A></LI></UL>
<UL><UL><LI><A HREF="6-2.html#621">6.2.1 Declaration and Initialization of lists</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#622">6.2.2 Type Definitions</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#623">6.2.3 Placing Elements into a list</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="6-2.html#623-1">6.2.3.1 Splicing</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="6-2.html#624">6.2.4 Removing Elements</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#625">6.2.5 Extent and Size-Changing Operations</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#626">6.2.6 Access and Iteration</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#627">6.2.7 Test for Inclusion</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#628">6.2.8 Sorting and Sorted list Operations</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#629">6.2.9 Searching Operations</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#6210">6.2.10 In-Place Transformations</A></LI></UL></UL>
<UL><UL><LI><A HREF="6-2.html#6211">6.2.11 Other Operations</A></LI></UL></UL>
<UL><LI><A HREF="6-3.html">6.3 Example Program: An Inventory System</A></LI></UL>
<H2><A HREF="7.html">Chapter 7: deque</A></H2>
<UL><LI><A HREF="7-1.html">7.1 The deque Data Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="7-1.html#711">7.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="7-2.html">7.2 deque Operations</A></LI></UL>
<UL><LI><A HREF="7-3.html">7.3 Example Program: Radix Sort</A></LI></UL>
<H2><A HREF="8.html">Chapter 8: set, multiset, and bitset</A></H2>
<UL><LI><A HREF="8-1.html">8.1 The set Data Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="8-1.html#811">8.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="8-2.html">8.2 set and multiset Operations</A></LI></UL>
<UL><UL><LI><A HREF="8-2.html#821">8.2.1 Declaration and Initialization of set</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-2.html#822">8.2.2 Type Definitions</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-2.html#823">8.2.3 Insertion</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-2.html#824">8.2.4 Removal of Elements from a set</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-2.html#825">8.2.5 Searching and Counting</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-2.html#826">8.2.6 Iterators</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-2.html#827">8.2.7 set Operations</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="8-2.html#827-1">8.2.7.1 Subset test</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="8-2.html#827-2">8.2.7.2 Set Union or Intersection</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="8-2.html#827-3">8.2.7.3 Set Difference</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="8-2.html#828">8.2.8 Other Generic Algorithms</A></LI></UL></UL>
<UL><LI><A HREF="8-3.html">8.3 Example Program: A Spelling Checker</A></LI></UL>
<UL><LI><A HREF="8-4.html">8.4 The bitset Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="8-4.html#841">8.4.1 Include Files</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-4.html#842">8.4.2 Declaration and Initialization of bitset</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-4.html#843">8.4.3 Accessing and Testing Elements</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-4.html#844">8.4.4 set Operations</A></LI></UL></UL>
<UL><UL><LI><A HREF="8-4.html#845">8.4.5 Conversions</A></LI></UL></UL>
<H2><A HREF="9.html">Chapter 9: map and multimap</A></H2>
<UL><LI><A HREF="9-1.html">9.1 The map Data Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="9-1.html#911">9.1.1 Include files</A></LI></UL></UL>
<UL><LI><A HREF="9-2.html">9.2 map and multimap Operations</A></LI></UL>
<UL><UL><LI><A HREF="9-2.html#921">9.2.1 Declaration and Initialization of map</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-2.html#922">9.2.2 Type Definitions</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-2.html#923">9.2.3 Insertion and Access</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-2.html#924">9.2.4 Removal of Values</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-2.html#925">9.2.5 Iterators</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-2.html#926">9.2.6 Searching and Counting</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-2.html#927">9.2.7 Element Comparisons</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-2.html#928">9.2.8 Other map Operations</A></LI></UL></UL>
<UL><LI><A HREF="9-3.html">9.3 Example Programs</A></LI></UL>
<UL><UL><LI><A HREF="9-3.html#931">9.3.1 Example: A Telephone Database</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-3.html#932">9.3.2 An Example: Graphs</A></LI></UL></UL>
<UL><UL><LI><A HREF="9-3.html#933">9.3.3 Example: A Concordance</A></LI></UL></UL>
<H2><A HREF="10.html">Chapter 10: The Container Adaptors stack and queue</A></H2>
<UL><LI><A HREF="10-1.html">10.1 Overview</A></LI></UL>
<UL><LI><A HREF="10-2.html">10.2 The stack Data Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="10-2.html#1021">10.2.1 Include Files</A></LI></UL></UL>
<UL><UL><LI><A HREF="10-2.html#1022">10.2.2 Declaration and Initialization of stack</A></LI></UL></UL>
<UL><UL><LI><A HREF="10-2.html#1023">10.2.3 Example Program: An RPN Calculator</A></LI></UL></UL>
<UL><LI><A HREF="10-3.html">10.3 The queue Data Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="10-3.html#1031">10.3.1 Include Files</A></LI></UL></UL>
<UL><UL><LI><A HREF="10-3.html#1032">10.3.2 Declaration and Initialization of queue</A></LI></UL></UL>
<UL><UL><LI><A HREF="10-3.html#1033">10.3.3 Example Program: Bank Teller Simulation</A></LI></UL></UL>
<H2><A HREF="11.html">Chapter 11: The Container Adaptor priority queue</A></H2>
<UL><LI><A HREF="11-1.html">11.1 The priority queue Data Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="11-1.html#1111">11.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="11-2.html">11.2 The priority queue Operations</A></LI></UL>
<UL><UL><LI><A HREF="11-2.html#1121">11.2.1 Declaration and Initialization of priority queue</A></LI></UL></UL>
<UL><LI><A HREF="11-3.html">11.3 Example Program: Event-Driven Simulation</A></LI></UL>
<UL><UL><LI><A HREF="11-3.html#1131">11.3.1 Example Program: An Ice Cream Store Simulation</A></LI></UL></UL>
<H2><A HREF="12.html">Chapter 12: string</A></H2>
<UL><LI><A HREF="12-1.html">12.1 The string Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="12-1.html#1211">12.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="12-2.html">12.2 string Operations</A></LI></UL>
<UL><UL><LI><A HREF="12-2.html#1221">12.2.1 Declaration and Initialization of string</A></LI></UL></UL>
<UL><UL><LI><A HREF="12-2.html#1222">12.2.2 Resetting Size and Capacity</A></LI></UL></UL>
<UL><UL><LI><A HREF="12-2.html#1223">12.2.3 Assignment, Append, and Swap</A></LI></UL></UL>
<UL><UL><LI><A HREF="12-2.html#1224">12.2.4 Character Access</A></LI></UL></UL>
<UL><UL><LI><A HREF="12-2.html#1225">12.2.5 Iterators</A></LI></UL></UL>
<UL><UL><LI><A HREF="12-2.html#1226">12.2.6 Insertion, Removal, and Replacement</A></LI></UL></UL>
<UL><UL><LI><A HREF="12-2.html#1227">12.2.7 Copy and Substring</A></LI></UL></UL>
<UL><UL><LI><A HREF="12-2.html#1228">12.2.8 string Comparisons</A></LI></UL></UL>
<UL><UL><LI><A HREF="12-2.html#1229">12.2.9 Searching Operations</A></LI></UL></UL>
<UL><LI><A HREF="12-3.html">12.3 Example Function: Split a Line into Words</A></LI></UL>
<H2><A HREF="IV.html">Part IV: Algorithms</A></H2>
<H2><A HREF="13.html">Chapter 13: Generic Algorithms</A></H2>
<UL><LI><A HREF="13-1.html">13.1 Overview</A></LI></UL>
<UL><UL><LI><A HREF="13-1.html#1311">13.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="13-2.html">13.2 Initialization Algorithms</A></LI></UL>
<UL><UL><LI><A HREF="13-2.html#1321">13.2.1 Fill a Sequence with An Initial Value</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-2.html#1322">13.2.2 Copy One Sequence Into Another Sequence</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-2.html#1323">13.2.3 Initialize a Sequence with Generated Values</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-2.html#1324">13.2.4 Swap Values from Two Parallel Ranges</A></LI></UL></UL>
<UL><LI><A HREF="13-3.html">13.3 Searching Operations</A></LI></UL>
<UL><UL><LI><A HREF="13-3.html#1331">13.3.1 Find an Element Satisfying a Condition</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-3.html#1332">13.3.2 Find Consecutive Duplicate Elements</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-3.html#1333">13.3.3 Find the First Occurrence of Any Value from a Sequence</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-3.html#1334">13.3.4 Find a Sub-Sequence within a Sequence</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-3.html#1335">13.3.5 Find the Last Occurrence of a Sub-Sequence</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-3.html#1336">13.3.6 Locate Maximum or Minimum Element</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-3.html#1337">13.3.7 Locate the First Mismatched Elements in Parallel Sequences</A></LI></UL></UL>
<UL><LI><A HREF="13-4.html">13.4 In-Place Transformations</A></LI></UL>
<UL><UL><LI><A HREF="13-4.html#1341">13.4.1 Reverse Elements in a Sequence</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-4.html#1342">13.4.2 Replace Certain Elements With Fixed Value</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-4.html#1343">13.4.3 Rotate Elements Around a Midpoint</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-4.html#1344">13.4.4 Partition a Sequence into Two Groups</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-4.html#1345">13.4.5 Generate Permutations in Sequence</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-4.html#1346">13.4.6 Merge Two Adjacent Sequences into One</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-4.html#1347">13.4.7 Randomly Rearrange Elements in a Sequence</A></LI></UL></UL>
<UL><LI><A HREF="13-5.html">13.5 Removal Algorithms</A></LI></UL>
<UL><UL><LI><A HREF="13-5.html#1351">13.5.1 Remove Unwanted Elements</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-5.html#1352">13.5.2 Remove Runs of Similar Values</A></LI></UL></UL>
<UL><LI><A HREF="13-6.html">13.6 Scalar-Producing Algorithms</A></LI></UL>
<UL><UL><LI><A HREF="13-6.html#1361">13.6.1 Count the Number of Elements That Satisfy a Condition</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-6.html#1362">13.6.2 Reduce Sequence to a Single Value</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-6.html#1363">13.6.3 Generalized Inner Product</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-6.html#1364">13.6.4 Test Two Sequences for Pairwise Equality</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-6.html#1365">13.6.5 Lexical Comparison</A></LI></UL></UL>
<UL><LI><A HREF="13-7.html">13.7 Sequence-Generating Algorithms</A></LI></UL>
<UL><UL><LI><A HREF="13-7.html#1371">13.7.1 Transform One or Two Sequences</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-7.html#1372">13.7.2 Partial Sums</A></LI></UL></UL>
<UL><UL><LI><A HREF="13-7.html#1373">13.7.3 Adjacent Differences</A></LI></UL></UL>
<UL><LI><A HREF="13-8.html">13.8 The for_each() Algorithm</A></LI></UL>
<H2><A HREF="14.html">Chapter 14: Ordered Collection Algorithms</A></H2>
<UL><LI><A HREF="14-1.html">14.1 Overview</A></LI></UL>
<UL><UL><LI><A HREF="14-1.html#1411">14.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="14-2.html">14.2 Sorting Algorithms</A></LI></UL>
<UL><UL><LI><A HREF="14-2.html#1421">14.2.1 Partial Sort</A></LI></UL></UL>
<UL><LI><A HREF="14-3.html">14.3 nth Element</A></LI></UL>
<UL><LI><A HREF="14-4.html">14.4 Binary Search</A></LI></UL>
<UL><LI><A HREF="14-5.html">14.5 Merge Ordered Sequences</A></LI></UL>
<UL><LI><A HREF="14-6.html">14.6 set Operations</A></LI></UL>
<UL><LI><A HREF="14-7.html">14.7 heap Operations</A></LI></UL>
<H2><A HREF="V.html">Part V: Special Techniques</A></H2>
<H2><A HREF="15.html">Chapter 15: Using Allocators</A></H2>
<UL><LI><A HREF="15-1.html">15.1 Overview</A></LI></UL>
<UL><LI><A HREF="15-2.html">15.2 Using Allocators with Existing C++ Standard Library Containers</A></LI></UL>
<UL><LI><A HREF="15-3.html">15.3 Building Your Own Allocators</A></LI></UL>
<UL><UL><LI><A HREF="15-3.html#1531">15.3.1 Using the Standard Allocator Interface</A></LI></UL></UL>
<H2><A HREF="16.html">Chapter 16: Building Containers and Algorithms</A></H2>
<UL><LI><A HREF="16-1.html">16.1 Extending the C++ Standard Library</A></LI></UL>
<UL><LI><A HREF="16-2.html">16.2 Building on the Standard Containers</A></LI></UL>
<UL><UL><LI><A HREF="16-2.html#1621">16.2.1 Inheritance</A></LI></UL></UL>
<UL><UL><LI><A HREF="16-2.html#1622">16.2.2 Generic Inheritance</A></LI></UL></UL>
<UL><UL><LI><A HREF="16-2.html#1623">16.2.3 Generic Composition</A></LI></UL></UL>
<UL><LI><A HREF="16-3.html">16.3 Creating Your Own Containers</A></LI></UL>
<UL><UL><LI><A HREF="16-3.html#1631">16.3.1 Meeting the Container Requirements</A></LI></UL></UL>
<UL><UL><LI><A HREF="16-3.html#1632">16.3.2 Meeting the Allocator Interface Requirements</A></LI></UL></UL>
<UL><UL><LI><A HREF="16-3.html#1633">16.3.3 Iterator Requirements</A></LI></UL></UL>
<UL><LI><A HREF="16-4.html">16.4 Tips and Techniques for Building Algorithms</A></LI></UL>
<UL><UL><LI><A HREF="16-4.html#1641">16.4.1 The iterator_traits Template</A></LI></UL></UL>
<UL><UL><LI><A HREF="16-4.html#1642">16.4.2 The distance and advance Primitives</A></LI></UL></UL>
<H2><A HREF="17.html">Chapter 17: The Traits Parameter</A></H2>
<UL><LI><A HREF="17-1.html">17.1 Defining the Problem</A></LI></UL>
<UL><LI><A HREF="17-2.html">17.2 Using the Traits Technique</A></LI></UL>
<H2><A HREF="18.html">Chapter 18: Exception Handling</A></H2>
<UL><LI><A HREF="18-1.html">18.1 Overview</A></LI></UL>
<UL><UL><LI><A HREF="18-1.html#1811">18.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="18-2.html">18.2 The Standard Exception Hierarchy</A></LI></UL>
<UL><LI><A HREF="18-3.html">18.3 Using Exceptions</A></LI></UL>
<UL><LI><A HREF="18-4.html">18.4 Example Program: Exceptions</A></LI></UL>
<H2><A HREF="VI.html">Part VI: Special Classes</A></H2>
<H2><A HREF="19.html">Chapter 19: auto_ptr</A></H2>
<UL><LI><A HREF="19-1.html">19.1 Overview</A></LI></UL>
<UL><UL><LI><A HREF="19-1.html#1911">19.1.1 Include File</A></LI></UL></UL>
<UL><LI><A HREF="19-2.html">19.2 Declaration and Initialization of Autopointers</A></LI></UL>
<H2><A HREF="20.html">Chapter 20: complex</A></H2>
<UL><LI><A HREF="20-1.html">20.1 Overview</A></LI></UL>
<UL><UL><LI><A HREF="20-1.html#2011">20.1.1 Include Files</A></LI></UL></UL>
<UL><LI><A HREF="20-2.html">20.2 Creating and Using Complex Numbers</A></LI></UL>
<UL><UL><LI><A HREF="20-2.html#2021">20.2.1 Declaring Complex Numbers</A></LI></UL></UL>
<UL><UL><LI><A HREF="20-2.html#2022">20.2.2 Accessing Complex Number Values</A></LI></UL></UL>
<UL><UL><LI><A HREF="20-2.html#2023">20.2.3 Arithmetic Operations</A></LI></UL></UL>
<UL><UL><LI><A HREF="20-2.html#2024">20.2.4 Comparing Complex Values</A></LI></UL></UL>
<UL><UL><LI><A HREF="20-2.html#2025">20.2.5 Stream Input and Output</A></LI></UL></UL>
<UL><UL><LI><A HREF="20-2.html#2026">20.2.6 Norm and Absolute Value</A></LI></UL></UL>
<UL><UL><LI><A HREF="20-2.html#2027">20.2.7 Trigonometric Functions</A></LI></UL></UL>
<UL><UL><LI><A HREF="20-2.html#2028">20.2.8 Transcendental Functions</A></LI></UL></UL>
<UL><LI><A HREF="20-3.html">20.3 Example Program: Roots of a Polynomial</A></LI></UL>
<H2><A HREF="21.html">Chapter 21: numeric_limits</A></H2>
<UL><LI><A HREF="21-1.html">21.1 Overview</A></LI></UL>
<UL><LI><A HREF="21-2.html">21.2 Fundamental Datatypes</A></LI></UL>
<UL><LI><A HREF="21-3.html">21.3 numeric_limits Members</A></LI></UL>
<UL><UL><LI><A HREF="21-3.html#2131">21.3.1 Members Common to All Types</A></LI></UL></UL>
<UL><UL><LI><A HREF="21-3.html#2132">21.3.2 Members Specific to Floating Point Values</A></LI></UL></UL>
<H2><A HREF="22.html">Chapter 22: valarray</A></H2>
<UL><LI><A HREF="22-1.html">22.1 Overview</A></LI></UL>
<UL><UL><LI><A HREF="22-1.html#2211">22.1.1 Performance Issues</A></LI></UL></UL>
<UL><UL><LI><A HREF="22-1.html#2212">22.1.2 Type Restrictions</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="22-1.html#2212-1">22.1.2.1 A Class That Meets the Type Restrictions</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="22-1.html#2212-2">22.1.2.2 A Class That Doesn't Meet the Type Restrictions</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="22-1.html#2213">22.1.3 Other Unique Features</A></LI></UL></UL>
<UL><UL><LI><A HREF="22-1.html#2214">22.1.4 Header Files</A></LI></UL></UL>
<UL><LI><A HREF="22-2.html">22.2 Declaring a valarray</A></LI></UL>
<UL><LI><A HREF="22-3.html">22.3 Assignment Operators</A></LI></UL>
<UL><LI><A HREF="22-4.html">22.4 Element and Subset Access</A></LI></UL>
<UL><UL><LI><A HREF="22-4.html#2241">22.4.1 Ordinary Index Operators</A></LI></UL></UL>
<UL><UL><LI><A HREF="22-4.html#2242">22.4.2 Subset Operators</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="22-4.html#2242-1">22.4.2.1 The Slice Operation</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="22-4.html#2242-2">22.4.2.2 The gslice Operation</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="22-4.html#2242-3">22.4.2.3 Boolean Mask</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="22-4.html#2242-4">22.4.2.4 Indirect Operation</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="22-4.html#2243">22.4.3 Unary Operators</A></LI></UL></UL>
<UL><LI><A HREF="22-5.html">22.5 Computed Assignment Operators</A></LI></UL>
<UL><LI><A HREF="22-6.html">22.6 Member Functions</A></LI></UL>
<UL><LI><A HREF="22-7.html">22.7 Non-Member Functions</A></LI></UL>
<UL><UL><LI><A HREF="22-7.html#2271">22.7.1 Binary Operators</A></LI></UL></UL>
<UL><UL><LI><A HREF="22-7.html#2272">22.7.2 Transcendental Functions</A></LI></UL></UL>
<H2><A HREF="VII.html">Part VII: Locales</A></H2>
<H2><A HREF="23.html">Chapter 23: Internationalization and Localization</A></H2>
<UL><LI><A HREF="23-1.html">23.1 Defining the Terms</A></LI></UL>
<UL><LI><A HREF="23-2.html">23.2 Localizing Cultural Conventions</A></LI></UL>
<UL><UL><LI><A HREF="23-2.html#2321">23.2.1 Language</A></LI></UL></UL>
<UL><UL><LI><A HREF="23-2.html#2322">23.2.2 Numbers</A></LI></UL></UL>
<UL><UL><LI><A HREF="23-2.html#2323">23.2.3 Currency</A></LI></UL></UL>
<UL><UL><LI><A HREF="23-2.html#2324">23.2.4 Time and Date</A></LI></UL></UL>
<UL><UL><LI><A HREF="23-2.html#2325">23.2.5 Ordering</A></LI></UL></UL>
<UL><LI><A HREF="23-3.html">23.3 Character Encodings for Localizing Alphabets</A></LI></UL>
<UL><UL><LI><A HREF="23-3.html#2331">23.3.1 Multibyte Encodings</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="23-3.html#2331-1">23.3.1.1 JIS Encoding</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="23-3.html#2331-2">23.3.1.2 Shift-JIS Encoding</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="23-3.html#2331-3">23.3.1.3 EUC Encoding</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="23-3.html#2331-4">23.3.1.4 Uses of the Three Multibyte Encodings</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="23-3.html#2332">23.3.2 Wide Characters</A></LI></UL></UL>
<UL><UL><LI><A HREF="23-3.html#2333">23.3.3 Conversion between Multibyte and Wide Characters</A></LI></UL></UL>
<UL><LI><A HREF="23-4.html">23.4 Summary</A></LI></UL>
<H2><A HREF="24.html">Chapter 24: The C and C++ Locales</A></H2>
<UL><LI><A HREF="24-1.html">24.1 The C Locale</A></LI></UL>
<UL><LI><A HREF="24-2.html">24.2 The C++ Locales</A></LI></UL>
<UL><UL><LI><A HREF="24-2.html#2421">24.2.1 Facets</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="24-2.html#2421-1">24.2.1.1 The Standard Facets</A></LI></UL></UL></UL>
<UL><LI><A HREF="24-3.html">24.3 Differences between the C Locale and the C++ Locales</A></LI></UL>
<UL><UL><LI><A HREF="24-3.html#2431">24.3.1 Common Uses of the C locale</A></LI></UL></UL>
<UL><UL><LI><A HREF="24-3.html#2432">24.3.2 Common Uses of C++ Locales</A></LI></UL></UL>
<UL><UL><LI><A HREF="24-3.html#2433">24.3.3 The Relationship between the C Locale and the C++ Locale</A></LI></UL></UL>
<UL><LI><A HREF="24-4.html">24.4 The Locale Object</A></LI></UL>
<H2><A HREF="25.html">Chapter 25: Facets</A></H2>
<UL><LI><A HREF="25-1.html">25.1 Understanding Facet Types</A></LI></UL>
<UL><LI><A HREF="25-2.html">25.2 Facet Lifetimes</A></LI></UL>
<UL><LI><A HREF="25-3.html">25.3 Accessing a Locale's Facets</A></LI></UL>
<UL><LI><A HREF="25-4.html">25.4 Using a Stream's Facet</A></LI></UL>
<UL><LI><A HREF="25-5.html">25.5 Modifying a Standard Facet's Behavior</A></LI></UL>
<UL><LI><A HREF="25-6.html">25.6 Creating a New Base Facet Class</A></LI></UL>
<H2><A HREF="26.html">Chapter 26: Building Your Own Facet Class</A></H2>
<UL><LI><A HREF="26-1.html">26.1 An Example of Formatting Phone Numbers</A></LI></UL>
<UL><LI><A HREF="26-2.html">26.2 A Phone Number Class</A></LI></UL>
<UL><LI><A HREF="26-3.html">26.3 A Phone Number Formatting Facet Class</A></LI></UL>
<UL><LI><A HREF="26-4.html">26.4 An Inserter for Phone Numbers</A></LI></UL>
<UL><LI><A HREF="26-5.html">26.5 The Phone Number Facet Class Revisited</A></LI></UL>
<UL><UL><LI><A HREF="26-5.html#2651">26.5.1 Adding Data Members</A></LI></UL></UL>
<UL><UL><LI><A HREF="26-5.html#2652">26.5.2 Adding Country Codes</A></LI></UL></UL>
<UL><LI><A HREF="26-6.html">26.6 An Example of a Derived Facet Class</A></LI></UL>
<UL><LI><A HREF="26-7.html">26.7 Using Phone Number Facets</A></LI></UL>
<UL><LI><A HREF="26-8.html">26.8 Formatting Phone Numbers</A></LI></UL>
<UL><LI><A HREF="26-9.html">26.9 Improving the Inserter Function</A></LI></UL>
<UL><UL><LI><A HREF="26-9.html#2691">26.9.1 Primitive Caching</A></LI></UL></UL>
<UL><UL><LI><A HREF="26-9.html#2692">26.9.2 Registration of a Callback Function</A></LI></UL></UL>
<UL><UL><LI><A HREF="26-9.html#2693">26.9.3 Improving the Inserter</A></LI></UL></UL>
<H2><A HREF="VIII.html">Part VIII: Iostreams</A></H2>
<H2><A HREF="27.html">Chapter 27: The Architecture of Iostreams</A></H2>
<UL><LI><A HREF="27-1.html">27.1 The Standard Iostreams</A></LI></UL>
<UL><UL><LI><A HREF="27-1.html#2711">27.1.1 Type Safety</A></LI></UL></UL>
<UL><UL><LI><A HREF="27-1.html#2712">27.1.2 Extensibility to New Types</A></LI></UL></UL>
<UL><LI><A HREF="27-2.html">27.2 How the Standard Iostreams Work</A></LI></UL>
<UL><UL><LI><A HREF="27-2.html#2721">27.2.1 The Iostream Layers</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="27-2.html#2721-1">27.2.1.1 The Formatting Layer</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-2.html#2721-2">27.2.1.2 The Transport Layer</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-2.html#2721-3">27.2.1.3 Locales</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="27-2.html#2722">27.2.2 File and In-Memory I/O</A></LI></UL></UL>
<UL><LI><A HREF="27-3.html">27.3 How the Standard Iostreams Help Solve Problems</A></LI></UL>
<UL><LI><A HREF="27-4.html">27.4 The Internal Structure of the Iostreams Layers</A></LI></UL>
<UL><UL><LI><A HREF="27-4.html#2741">27.4.1 The Internal Structure of the Formatting Layer</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2741-1">27.4.1.1 Iostreams Base Class ios_base</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2741-2">27.4.1.2 The Iostreams Character Type-Dependent Base Class</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2741-3">27.4.1.3 Character Traits</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2741-4">27.4.1.4 The Input and Output Streams</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2741-5">27.4.1.5 The File Streams</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2741-6">27.4.1.6 The String Streams</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="27-4.html#2742">27.4.2 The Transport Layer's Internal Structure</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2742-1">27.4.2.1 The Stream Buffer</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2742-2">27.4.2.2 The File Buffer</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="27-4.html#2742-3">27.4.2.3 The String Stream Buffer</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="27-4.html#2743">27.4.3 Collaboration of Streams and Stream Buffers</A></LI></UL></UL>
<UL><UL><LI><A HREF="27-4.html#2744">27.4.4 Collaboration of Locales and Iostreams</A></LI></UL></UL>
<H2><A HREF="28.html">Chapter 28: Formatted Input and Output</A></H2>
<UL><LI><A HREF="28-1.html">28.1 The Predefined Streams</A></LI></UL>
<UL><LI><A HREF="28-2.html">28.2 Input and Output Operators</A></LI></UL>
<UL><LI><A HREF="28-3.html">28.3 Format Control Using the Stream's Format State</A></LI></UL>
<UL><UL><LI><A HREF="28-3.html#2831">28.3.1 Format Parameters</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="28-3.html#2831-1">28.3.1.1 Parameters That Can Have an Arbitrary Value</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="28-3.html#2831-2">28.3.1.2 Parameters That Can Have Only a Few Different Values</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="28-3.html#2832">28.3.2 Manipulators</A></LI></UL></UL>
<UL><LI><A HREF="28-4.html">28.4 Localization Using the Stream's Locale</A></LI></UL>
<UL><LI><A HREF="28-5.html">28.5 Formatted Input</A></LI></UL>
<UL><UL><LI><A HREF="28-5.html#2851">28.5.1 Skipping Characters</A></LI></UL></UL>
<UL><UL><LI><A HREF="28-5.html#2852">28.5.2 Input of Strings</A></LI></UL></UL>
<H2><A HREF="29.html">Chapter 29: Error State of Streams</A></H2>
<UL><LI><A HREF="29-1.html">29.1 About Flags</A></LI></UL>
<UL><LI><A HREF="29-2.html">29.2 Checking the Stream State</A></LI></UL>
<UL><LI><A HREF="29-3.html">29.3 Catching Exceptions</A></LI></UL>
<H2><A HREF="30.html">Chapter 30: File Input and Output</A></H2>
<UL><LI><A HREF="30-1.html">30.1 About File Streams</A></LI></UL>
<UL><UL><LI><A HREF="30-1.html#3011">30.1.1 Code Conversion in Wide Character Streams</A></LI></UL></UL>
<UL><LI><A HREF="30-2.html">30.2 Working with File Streams</A></LI></UL>
<UL><UL><LI><A HREF="30-2.html#3021">30.2.1 Creating and Opening File Stream Objects</A></LI></UL></UL>
<UL><UL><LI><A HREF="30-2.html#3022">30.2.2 Checking a File Stream's Status</A></LI></UL></UL>
<UL><UL><LI><A HREF="30-2.html#3023">30.2.3 Closing a File Stream</A></LI></UL></UL>
<UL><LI><A HREF="30-3.html">30.3 The Open Mode</A></LI></UL>
<UL><UL><LI><A HREF="30-3.html#3031">30.3.1 The Open Mode Flags</A></LI></UL></UL>
<UL><UL><UL><LI><A HREF="30-3.html#3031-1">30.3.1.1 The in and out Open Modes</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="30-3.html#3031-2">30.3.1.2 The Open modes ate, app, and trunc</A></LI></UL></UL></UL>
<UL><UL><UL><LI><A HREF="30-3.html#3031-3">30.3.1.3 The binary Open Mode</A></LI></UL></UL></UL>
<UL><UL><LI><A HREF="30-3.html#3032">30.3.2 Combining Open Modes</A></LI></UL></UL>
<UL><UL><LI><A HREF="30-3.html#3033">30.3.3 Default Open Modes</A></LI></UL></UL>
<UL><LI><A HREF="30-4.html">30.4 Binary and Text Mode</A></LI></UL>
<UL><LI><A HREF="30-5.html">30.5 File Positioning</A></LI></UL>
<UL><UL><LI><A HREF="30-5.html#3051">30.5.1 How Positioning Works with the Iostream Architecture</A></LI></UL></UL>
<H2><A HREF="31.html">Chapter 31: Input and Output In Memory</A></H2>
<UL><LI><A HREF="31-1.html">31.1 About String Streams</A></LI></UL>
<UL><LI><A HREF="31-2.html">31.2 The Internal Buffer</A></LI></UL>
<UL><LI><A HREF="31-3.html">31.3 The Open Modes</A></LI></UL>
<H2><A HREF="32.html">Chapter 32: Input and Output of User Types</A></H2>
<UL><LI><A HREF="32-1.html">32.1 A Note on User-Defined Types</A></LI></UL>
<UL><LI><A HREF="32-2.html">32.2 An Example with a User-Defined Type</A></LI></UL>
<UL><LI><A HREF="32-3.html">32.3 A Simple Extractor and Inserter for the Example</A></LI></UL>
<UL><LI><A HREF="32-4.html">32.4 Improved Extractors and Inserters</A></LI></UL>
<UL><LI><A HREF="32-5.html">32.5 More Improved Extractors and Inserters</A></LI></UL>
<UL><UL><LI><A HREF="32-5.html#3251">32.5.1 Applying the Recommendations to the Example</A></LI></UL></UL>
<UL><UL><LI><A HREF="32-5.html#3252">32.5.2 An Afterthought</A></LI></UL></UL>
<UL><LI><A HREF="32-6.html">32.6 Patterns for Extractors and Inserters of User-Defined Types</A></LI></UL>
<H2><A HREF="33.html">Chapter 33: Manipulators</A></H2>
<UL><LI><A HREF="33-1.html">33.1 A Recap of Manipulators</A></LI></UL>
<UL><LI><A HREF="33-2.html">33.2 Manipulators without Parameters</A></LI></UL>
<UL><UL><LI><A HREF="33-2.html#3321">33.2.1 Examples of Manipulators without Parameters</A></LI></UL></UL>
<UL><UL><LI><A HREF="33-2.html#3322">33.2.2 A Remark on the Manipulator endl</A></LI></UL></UL>
<UL><LI><A HREF="33-3.html">33.3 Manipulators with Parameters</A></LI></UL>
<UL><UL><LI><A HREF="33-3.html#3331">33.3.1 The Standard Manipulators</A></LI></UL></UL>
<UL><UL><LI><A HREF="33-3.html#3332">33.3.2 The Principle of Manipulators with Parameters</A></LI></UL></UL>
<UL><UL><LI><A HREF="33-3.html#3333">33.3.3 Examples of Manipulators with Parameters</A></LI></UL></UL>
<H2><A HREF="34.html">Chapter 34: Streams and Stream Buffers</A></H2>
<UL><LI><A HREF="34-1.html">34.1 Streams as Objects</A></LI></UL>
<UL><LI><A HREF="34-2.html">34.2 Copying and Assigning Stream Objects</A></LI></UL>
<UL><UL><LI><A HREF="34-2.html#3421">34.2.1 Copying a Stream's Data Members</A></LI></UL></UL>
<UL><UL><LI><A HREF="34-2.html#3422">34.2.2 Sharing Stream Buffers Inadvertently</A></LI></UL></UL>
<UL><UL><LI><A HREF="34-2.html#3423">34.2.3 Using Pointers or References to Streams</A></LI></UL></UL>
<UL><LI><A HREF="34-3.html">34.3 Sharing a Stream Buffer Among Streams</A></LI></UL>
<UL><UL><LI><A HREF="34-3.html#3431">34.3.1 Several Format Settings for the Same Stream</A></LI></UL></UL>
<UL><UL><LI><A HREF="34-3.html#3432">34.3.2 Several Locales for the Same Stream</A></LI></UL></UL>
<UL><UL><LI><A HREF="34-3.html#3433">34.3.3 Input and Output to the Same Stream</A></LI></UL></UL>
<UL><LI><A HREF="34-4.html">34.4 Copies of the Stream Buffer</A></LI></UL>
<H2><A HREF="35.html">Chapter 35: Synchronizing Streams</A></H2>
<UL><LI><A HREF="35-1.html">35.1 Sharing Files Among Streams</A></LI></UL>
<UL><LI><A HREF="35-2.html">35.2 Explicit Synchronization</A></LI></UL>
<UL><UL><LI><A HREF="35-2.html#3521">35.2.1 Output Streams</A></LI></UL></UL>
<UL><UL><LI><A HREF="35-2.html#3522">35.2.2 Input Streams</A></LI></UL></UL>
<UL><LI><A HREF="35-3.html">35.3 Implicit Synchronization Using the unitbuf Format Flag</A></LI></UL>
<UL><LI><A HREF="35-4.html">35.4 Implicit Synchronization by Tying Streams</A></LI></UL>
<UL><LI><A HREF="35-5.html">35.5 Synchronizing the Standard Iostream Objects</A></LI></UL>
<UL><LI><A HREF="35-6.html">35.6 Synchronization with the C Standard I/O</A></LI></UL>
<H2><A HREF="36.html">Chapter 36: Stream Storage for Private Use</A></H2>
<UL><LI><A HREF="36-1.html">36.1 Adding Data to a Stream</A></LI></UL>
<UL><LI><A HREF="36-2.html">36.2 An Example: Storing a Date Format String</A></LI></UL>
<UL><LI><A HREF="36-3.html">36.3 Another Look at the Date Format String</A></LI></UL>
<UL><LI><A HREF="36-4.html">36.4 Caveat</A></LI></UL>
<H2><A HREF="37.html">Chapter 37: Registration of Callback Functions</A></H2>
<UL><LI><A HREF="37-1.html">37.1 Defining Callback Functions</A></LI></UL>
<UL><LI><A HREF="37-2.html">37.2 An Example</A></LI></UL>
<H2><A HREF="38.html">Chapter 38: Creating New Stream Classes by Derivation</A></H2>
<UL><LI><A HREF="38-1.html">38.1 Deriving a New Stream Type</A></LI></UL>
<UL><LI><A HREF="38-2.html">38.2 Choosing a Base Class</A></LI></UL>
<UL><LI><A HREF="38-3.html">38.3 Construction and Initialization</A></LI></UL>
<UL><UL><LI><A HREF="38-3.html#3831">38.3.1 Derivation from File Stream or String Stream Classes std::{i,o}fstream or std::{i,o}stringstream</A></LI></UL></UL>
<UL><UL><LI><A HREF="38-3.html#3832">38.3.2 Derivation from the Stream Classes std::basic_{i,o}stream</A></LI></UL></UL>
<UL><LI><A HREF="38-4.html">38.4 The Example</A></LI></UL>
<UL><UL><LI><A HREF="38-4.html#3841">38.4.1 The Derived Stream Template</A></LI></UL></UL>
<UL><UL><LI><A HREF="38-4.html#3842">38.4.2 The Date Inserter</A></LI></UL></UL>
<UL><UL><LI><A HREF="38-4.html#3843">38.4.3 The Manipulator</A></LI></UL></UL>
<UL><UL><LI><A HREF="38-4.html#3844">38.4.4 A Remark on Performance</A></LI></UL></UL>
<UL><LI><A HREF="38-5.html">38.5 Using iword/pword for RTTI in Derived Streams</A></LI></UL>
<H2><A HREF="39.html">Chapter 39: Stream Buffers</A></H2>
<UL><LI><A HREF="39-1.html">39.1 Class basic_streambuf: the Sequence Abstraction</A></LI></UL>
<UL><UL><LI><A HREF="39-1.html#3911">39.1.1 The streambuf Hierarchy</A></LI></UL></UL>
<UL><UL><LI><A HREF="39-1.html#3912">39.1.2 The streambuf Interface</A></LI></UL></UL>
<UL><LI><A HREF="39-2.html">39.2 Deriving New Stream Buffer Classes</A></LI></UL>
<UL><LI><A HREF="39-3.html">39.3 Connecting iostream and streambuf Objects</A></LI></UL>
<H2><A HREF="40.html">Chapter 40: Defining A Code Conversion Facet</A></H2>
<UL><LI><A HREF="40-1.html">40.1 Overview</A></LI></UL>
<UL><LI><A HREF="40-2.html">40.2 Categories of Code Conversions</A></LI></UL>
<UL><LI><A HREF="40-3.html">40.3 Example 1: Defining a Narrow Character Code Conversion (ASCII &lt;-&gt; EBCDIC)</A></LI></UL>
<UL><UL><LI><A HREF="40-3.html#4031">40.3.1 Derive a New Facet Type</A></LI></UL></UL>
<UL><UL><LI><A HREF="40-3.html#4032">40.3.2 Specialize the New Facet Type and Implement the Member Functions</A></LI></UL></UL>
<UL><UL><LI><A HREF="40-3.html#4033">40.3.3 Use the New Code Conversion Facet</A></LI></UL></UL>
<UL><LI><A HREF="40-4.html">40.4 Error Indication in Code Conversion Facets</A></LI></UL>
<UL><LI><A HREF="40-5.html">40.5 Example 2: Defining a Multibyte Character Code Conversion (JIS &lt;-&gt; Unicode)</A></LI></UL>
<UL><UL><LI><A HREF="40-5.html#4051">40.5.1 Define a New Conversion State Type</A></LI></UL></UL>
<UL><UL><LI><A HREF="40-5.html#4052">40.5.2 Define a New Character Traits Type</A></LI></UL></UL>
<UL><UL><LI><A HREF="40-5.html#4053">40.5.3 Define the Code Conversion Facet</A></LI></UL></UL>
<UL><UL><LI><A HREF="40-5.html#4054">40.5.4 Use the New Code Conversion Facet</A></LI></UL></UL>
<H2><A HREF="41.html">Chapter 41: Defining Your Own Character Types</A></H2>
<UL><LI><A HREF="41-1.html">41.1 User-Defined Character Types</A></LI></UL>
<UL><UL><LI><A HREF="41-1.html#4111">41.1.1 Requirements for User-Defined Character Types</A></LI></UL></UL>
<UL><LI><A HREF="41-2.html">41.2 Defining Traits and Facets for User-Defined Types</A></LI></UL>
<UL><LI><A HREF="41-3.html">41.3 Creating and Using Streams Instantiated on User-Defined Types</A></LI></UL>
<H2><A HREF="42.html">Chapter 42: Imbuing Locales</A></H2>
<UL><LI><A HREF="42-1.html">42.1 Locales and Iostreams</A></LI></UL>
<UL><LI><A HREF="42-2.html">42.2 When to Imbue a New Locale</A></LI></UL>
<UL><LI><A HREF="42-3.html">42.3 An Example</A></LI></UL>
<H2><A HREF="43.html">Chapter 43: Stream Iterators</A></H2>
<UL><LI><A HREF="43-1.html">43.1 Definition</A></LI></UL>
<UL><LI><A HREF="43-2.html">43.2 Differences between Stream Iterators and Container Iterators</A></LI></UL>
<UL><LI><A HREF="43-3.html">43.3 Error Indication by Stream Iterators</A></LI></UL>
<UL><LI><A HREF="43-4.html">43.4 Several Iterators on One Stream</A></LI></UL>
<H2><A HREF="44.html">Chapter 44: Iostreams and Multithreading</A></H2>
<UL><LI><A HREF="44-1.html">44.1 Multithread-Safe: Level 2</A></LI></UL>
<UL><LI><A HREF="44-2.html">44.2 The Locking Mechanism</A></LI></UL>
<UL><UL><LI><A HREF="44-2.html#4421">44.2.1 Protecting the Buffer</A></LI></UL></UL>
<H2><A HREF="45.html">Chapter 45: Standard vs. Traditional Iostreams</A></H2>
<UL><LI><A HREF="45-1.html">45.1 The Character Type</A></LI></UL>
<UL><LI><A HREF="45-2.html">45.2 Internationalization</A></LI></UL>
<UL><LI><A HREF="45-3.html">45.3 File Streams</A></LI></UL>
<UL><UL><LI><A HREF="45-3.html#4531">45.3.1 Connecting Files and Streams</A></LI></UL></UL>
<UL><UL><LI><A HREF="45-3.html#4532">45.3.2 The File Buffer</A></LI></UL></UL>
<UL><LI><A HREF="45-4.html">45.4 String Streams</A></LI></UL>
<UL><LI><A HREF="45-5.html">45.5 Streams with Assign</A></LI></UL>
<H2><A HREF="46.html">Chapter 46: Standard vs. Apache C++ Standard Library Iostreams</A></H2>
<UL><LI><A HREF="46-1.html">46.1 Extensions</A></LI></UL>
<UL><UL><LI><A HREF="46-1.html#4611">46.1.1 File Descriptors</A></LI></UL></UL>
<UL><UL><LI><A HREF="46-1.html#4612">46.1.2 Multithreaded Environments</A></LI></UL></UL>
<H3><A HREF="tindex.html">Topic Index</A></H3>
</UL>
<BR>
<HR>
<IMG SRC="images/bnoprev.gif" WIDTH=20 HEIGHT=21 ALT="No previous file" BORDER=O><A HREF="noframes.html"><IMG SRC="images/btop.gif" WIDTH=56 HEIGHT=21 ALT="Top of Document" BORDER=O></A><IMG SRC="images/bnotoc.gif" WIDTH=56 HEIGHT=21 ALT="No link" BORDER=O><A HREF="tindex.html"><IMG SRC="images/bindex.gif" WIDTH=56 HEIGHT=21 ALT="Index page" BORDER=O></A><IMG SRC="images/bnonext.gif" WIDTH=20 HEIGHT=21 ALT="No next file" BORDER=O>
<!-- 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>