blob: b7da78a24b3d8fd1e600394c2e6ddb4942acdb8e [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed
with this work for additional information regarding copyright
ownership. The ASF licenses this file to you under the Apache
License, Version 2.0 (the License); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied. See the License for the specific language governing
permissions and limitations under the License.
Copyright 1999-2007 Rogue Wave Software, Inc.
-->
<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><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>
<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>