Part I: C++, An Overview
Chapter 1: Getting Started
1.1: Problem Solving
1.2: The C++ Program
1.3: Preprocessor Directives
1.4: A Word About Comments
1.5: A First Look at Input/Output
Chapter 2: A Tour of C++
2.1: The Built-In Array Data Type
2.2: Dynamic Memory Allocation and Pointers..
2.3: An Object-Based Design
2.4: An Object-Oriented Design
2.5: A Generic Design
2.6: An Exception-Based Design
2.7: An Array by Any Other Name
2.8: The Standard Array Is a Vector
Part II: The Basic Language
Chapter 3: The C++ Data Types
3.1: Literal Constant
3.2: Variables
3.3: Pointer Types
3.4: String Types
3.5: const Qualifier
3.6: Reference Types
3.7: The bool Type
3.8: Enumeration Types
3.9: Array Types
3.10: The vector Container Type
3.11: complex Number Types
3.12: Typedef Names
3.13: volatile Qualifier
3.14: The pair Type
3.15: Class Types
Chapter 4: Expressions
4.1: What Is an Expression?
4.2: Arithmetic Operators
4.3: Equality, Relational, and Logical Operators..
4.4: Assignment Operators
4.5: Increment and Decrement Operators
4.6: Complex Number Operations
4.7: The Conditional Operator
4.8: The sizeof Operator
4.9: The new and delete Expressions
4.10: Comma Operator
4.11: The Bitwise Operators
4.12: bitset Operations
4.13: Precedence
4.14: Type Conversions
4.15: AStack Class Example
Chapter 5: Statements
5.1: Simple and Compound Statements
5.2: Declaration Statement
5.3: The if Statement
5.4: The switch Statement
5.5: The for Loop Statement
5.6: The while Statement
5.7: The do while Statement
5.8: The break Statement
5.9: The continue Statement
5.10: The goto Statement
5.11: A Linked List Example
Chapter 6: Abstract Container Types
6.1: Our Text Query System
6.2: A vector or a list?
6,3: How a vector Grows Itself
6.4: Defining a Sequence Container
6.5: Iterators
6.6: Sequence Container Operations
6.7: Storing Lines of Text
6.8: Finding a Substring
6.9: Handling Punctuation
6.10: A String by Any Other Format
6.11: Additional String Operations
6.12: Building a Text Location Map
6.13: Building a Word Exclusion Set
6.14: The Complete Program
6.15: Multimap and Multiset
6.16: Stack
6.17: Queue and Priority Queue
6.18: Revisiting Our iStack Class
Part III: Procedural-Based Programming
Chapter 7: Functions
7.1: Overview
7.2: Function Prototype
7.3: Argument Passing
7.4: Returning a Value
7.5: Recursion
7.6: Inline Functions
7.7: Linkage Directives: extern"C"
7.8: main(): Handling Command Line Options
7.9: Pointers to Functions
Chapter 8: Scope and Lifetime
8.1: Scope
8.2: Global Objects and Functions
8.3: Local Objects
8.4: Dynamically Allocated Objects
8.5: Namespace Definitions
8.6: Using Namespace Members
Chapter 9: Overloaded Functions
9.1: Overloaded Function Declarations
9.2: The Three Steps of Overload Resolution
9.3: Argument Type Conversions
9.4: Details of Function Overload Resolution
Chapter 10: Function Templates
10.1: Function Template Definition
10.2: Function Template Instantiation
10.3: Template Argument Deduction
10.4: Explicit Template Arguments
10.5: Template Compilation Models
10.6: Template Explicit Specialization
10.7: Overloading Function Templates
10.8: Overload Resolution with Instantiations
10.9: Name Resolution in Template Definitions
10.10: Namespaces and Function Templates
10.11: Function Template Example
Chapter 11: Exception Handling
11.1: Throwing an Exception
11.2: The Try Block
11.3: Catching an Exception
11.4: Exception Specifications
11.5: Exceptions and Design Issues
Chapter 12: The Generic Algorithms
12.1: Overview
12.2: Using the Generic Algorithms
12.3: Function Objects
12.4: Revisiting Iterators
12.5: The Generic Algorithms
12.6: When Not to Use the Generic Algorithms
Part IV: Object-Based Prosramming
Chapter 13: Classes
13.1: Class Definition
13.2: Class Objects
13.3: Class Member Functions
13.4: The Implicit this Pointer
13.5: Static Class Members
13.6: Pointer to Class Member
13.7: Union: A Space-Saving Class
13.8: Bit-field: A Space-Saving Member
13.9: Class Scope
13.10: Nested Classes
13.11: Classes as Namespace Members
13.2: Local Classes
Chapter 14: Class Initialization, Assignment, and Destruction
14.1: Class Initialization
14.2: The Class Constructor
14.3: The Class Destructor
14.4: Class Object Arrays and Vectors
14.5: The Member Initialization List
14.6: Memberwise Initialization
14.7: Memberwise Assignment
14.8: Efficiency Considerations
Chapter 15: Overloaded Operators and User-Defined Conversions. .,
15.1: Operator Overloading
15.2: Friends
15.3: Operator
15.4: Operator [ ]
15.5: Operator ( )
15.6: Operator->
15.7: Operators ++ and
15.8: Operators new and delete
15.9: User-Defined Conversions
15.10: Selecting a Conversion
15.11: Overload Resolution and Member Functions
15.12: Overload Resolution and Operators
Chapter 16: Class Templates
16.1: Class Template Definition
16.2: Class Template Instantiation
16.3:, Member Functions of Class Templates
16.4: Friend Declarations in Class Templates
16.5: Static Data Members of Class Templates
16.6: Nested Types of Class Templates
16.7: Member Templates
16.8: Class Templates and Compilation Model
16.9: Class Template Specializations
16.10: Class Template Partial Specializations
16.11: Name Resolution in Class Templates
16.12: Namespaces and Class Templates
16.13: A Template Array Class
Part V: Object-Oriented Programming
Chapter 17: Class Inheritance and Subtyping
17.1: Defining a Class Hierarchy
17.2: Identifying the Members of the Hierarchy
17.3: Base Class Member Access
17.4: Base and Derived Class Construction
17.5: Base and Derived Class VirtUal Functions
17.6: Memberwise Initialization and Assignment
17.7: A UserQuery Manager Class
17.8: Putting It Together
Chapter 18: Multiple and Virtual Inheritance
18.1: Setting the Stage
18.2: Multiple Inheritance
18.3: Public, Private, and Protected Inheritance
18.4: Class Scope under Inheritance
18.5: Vh'tual Inheritance
18.6: A Multiple, Virtual Inheritance Example
Chapter 19: Uses of Inheritance in C ++
19.1: Run-Tune Type Identification
19.2: Exceptions and Inheritance
19.3: Overload Resolution and Inheritance
Chapter 20: The iostream Library
20.1: The Output Operator<<
20.2: Input
20.3: Additional Input/Output Operators
20.4: Overloading the Output Operator <<
20.5: Overloading the Input Operator >>
20.8: File Input and Output
20.7: Condition States
20.8: String Streams
20.9: Format State
20.10: A Strongly Typed Library
Appendix: The Generic Algorithms Alphabetically..
accumulate()
adjacent_difference0
adjacent_find()
bimry_search()
copy()
copy_backward()
count()
count_if()
equal()
equal_range()
fill()
fill_n()
find()
find_if()
find_end()
find_first_of()
for_each()
generate()
generate_n()
includes()
inner_product()
inplace_merge()
iter_swap ()
lexicographical_compare()
lower_bound()
max()
max_element()
min()
min_element()
merse()
mismatch()
next_permutation()
nth_element()
partial_sort()
partial_sort_copy()
partial_sum()
partition()
prev_permutation()
random_shuffle()
remove()
remove_copy()
remove_if()
remove_copy_if()
replace()
replace_copy()
replace_if()
replace_copy_if()
reverse()
reverse_copy()
rotate()
rotate_copy()
search()
search_n()
set_difference()
set_intersection()
set_symmetric_difference()
set_union()
sort()
stable_partition()
stable_sort()
swap()
swap_range()
transform()
unique()
unique_copy()
upper_bound()
Heap Algorithms
make_heap()
pop_heap()
push_heap()
sort_heap()
Index