search for books and compare prices
Tables of Contents for Designing Components With the C++ Stl
Chapter/Section Title
Page #
Page Count
Foreword
vii
2
Preface
ix
 
Part I Introduction
1
90
1 The concept of the C++ Standard Template Library
3
28
1.1 Genericity of components
4
1
1.2 Abstract and implicit data types
4
1
1.3 The fundamental concept
5
4
1.3.1 Containers
5
1
1.3.2 Iterators
5
1
1.3.3 Algorithms
5
1
1.3.4 Interplay
6
3
1.4 Internal functioning
9
5
1.5 Complexity
14
5
1.5.1 O notation
15
3
1.5.2 XXX notation
18
1
1.6 Auxiliary classes and functions
19
9
1.6.1 Pairs
19
1
1.6.2 Comparison operators
20
1
1.6.3 Function objects
21
4
1.6.4 Function adapters
25
3
1.7 Naming and other conventions
28
3
1.7.1 Notation
28
1
1.7.2 Name spaces and predefined parameters in templates
28
1
1.7.3 Header files
28
1
1.7.4 Nested templates
29
2
2 Iterators
31
18
2.1 Iterator properties
32
7
2.1.1 States
32
1
2.1.2 Distances
32
1
2.1.3 Standard iterator and traits classes
33
2
2.1.4 Categories
35
2
2.1.5 Reverse iterators
37
1
2.1.6 Tag classes
38
1
2.2 Stream iterators
39
10
2.2.1 Istream iterator
39
3
2.2.2 Ostream iterator
42
7
3 Containers
49
28
3.1 Data type interface
49
1
3.2 Container methods
50
2
3.2.1 Reversible containers
52
1
3.3 Sequences
52
10
3.3.1 Vector
53
4
3.3.2 List
57
4
3.3.3 Deque
61
1
3.3.4 showSequence
62
1
3.4 Iterator categories and containers
62
8
3.4.1 Derivation of value and distance types
67
2
3.4.2 Inheriting iterator properties
69
1
3.5 Iterators for insertion into containers
70
7
4 Abstract data types
77
14
4.1 Stack
77
1
4.2 Queue
78
2
4.3 Priority queue
80
2
4.4 Sorted associative containers
82
9
4.4.1 Set
83
3
4.4.2 Multiset
86
1
4.4.3 Map
87
3
4.4.4 Multimap
90
1
Part II Algorithms
91
74
5 Standard algorithms
93
72
5.1 Copying algorithms
93
1
5.2 Algorithms with predicates
94
1
5.2.1 Algorithms with binary predicates
95
1
5.3 Nonmutating sequence operations
95
14
5.3.1 for_each
96
1
5.3.2 find
97
1
5.3.3 find_end
98
1
5.3.4 find_first_of
99
1
5.3.5 adjacent_find
100
2
5.3.6 count
102
1
5.3.7 mismatch
103
3
5.3.8 equal
106
1
5.3.9 search
107
2
5.3.10 search_n
109
1
5.4 Mutating sequence operations
109
21
5.4.1 iota
109
1
5.4.2 copy
110
3
5.4.3 swap
113
1
5.4.4 transform
114
2
5.4.5 replace
116
2
5.4.6 fill
118
1
5.4.7 generate
119
2
5.4.8 remove
121
2
5.4.9 unique
123
1
5.4.10 reverse
124
1
5.4.11 rotate
125
2
5.4.12 random_shuffle
127
1
5.4.13 partition
128
2
5.5 Sorting, merging, and related operations
130
13
5.5.1 sort
130
4
5.5.2 nth_element
134
1
5.5.3 Binary search
135
4
5.5.4 Merging
139
4
5.6 Set operations on sorted structures
143
7
5.6.1 includes
144
1
5.6.2 set_union
145
1
5.6.3 set_intersection
146
1
5.6.4 set_difference
146
1
5.6.5 set_symmetric_difference
147
1
5.6.6 Conditions and limitations
148
2
5.7 Heap algorithms
150
5
5.7.1 make_heap
152
1
5.7.2 pop_heap
152
1
5.7.3 push_heap
153
1
5.7.3 sort_heap
154
1
5.8 Minimum and maximum
155
1
5.9 Lexicographical comparison
155
2
5.10 Permutations
157
1
5.11 Numeric algorithms
158
7
5.11.1 accumulate
159
1
5.11.2 inner_product
160
1
5.11.3 partial_sum
161
1
5.11.4 adjacent_difference
162
3
Part III Beyond the STL: components and applications
165
112
6 Set operations on associative containers
167
8
6.1 Subset relation
168
1
6.2 Union
168
1
6.3 Intersection
169
1
6.4 Difference
170
1
6.5 Symmetric difference
171
1
6.6 Example
171
4
7 Fast associative containers
175
18
7.1 Fundamentals
175
2
7.1.1 Collision handling
176
1
7.2 Map
177
12
7.2.1 Example
188
1
7.3 Set
189
1
7.4 Overloaded operators for sets
189
4
7.4.1 Union
190
1
7.4.2 Intersection
190
1
7.4.3 Difference
191
1
7.4.4 Symmetric difference
191
1
7.4.5 Example
191
2
8 Various applications
193
10
8.1 Cross-reference
193
3
8.2 Permuted index
196
2
8.3 Thesaurus
198
5
9 Vectors and matrices
203
28
9.1 Checked vectors
203
2
9.2 Matrices as nested containers
205
7
9.2.1 Two-dimensional matrices
206
3
9.2.2 Three-dimensional matrix
209
3
9.2.3 Generalization
212
1
9.3 Matrices for different memory models
212
6
9.3.1 C memory layout
215
1
9.3.2 FORTRAN memory layout
216
1
9.3.3 Memory layout for symmetric matrices
217
1
9.4 Sparse matrices
218
13
9.4.1 Index operator and assignment
222
1
9.4.2 Hash function for index pairs
223
1
9.4.3 Class MatrixElement
224
2
9.4.4 Class sparseMatrix
226
3
9.4.5 Run time measurements
229
2
10 External sorting
231
12
10.1 External sorting by merging
231
8
10.2 External sorting with accelerator
239
4
11 Graphs
243
34
11.1 Class Graph
246
9
11.1.1 Insertion of vertices and edges
248
1
11.1.2 Analysis of a graph
249
4
11.1.3 Input and output tools
253
2
11.2 Dynamic priority queue
255
8
11.2.1 Data structure
256
2
11.2.2 Class dynamic_priority_queue
258
5
11.3 Graph algorithms
263
14
11.3.1 Shortest paths
264
6
11.3.2 Topological sorting of a graph
270
7
Appendix
277
22
A.1 Auxiliary programs
277
6
A.2 Allocators
283
3
A.3 Sources and comments
286
1
A.4 Solutions to selected exercises
287
7
A.5 Overview of the sample files
294
5
References
299
2
Index
301