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