Cover image for Object-oriented design in C++ using the standard template
Title:
Object-oriented design in C++ using the standard template
Personal Author:
Publication Information:
Pacific Grove, CA : Brooks Cole, 2002
ISBN:
9780534377823

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010053809 QA76.64 D44 2002 Open Access Book Book
Searching...
Searching...
30000010053808 QA76.64 D44 2002 Open Access Book Book
Searching...

On Order

Summary

Summary

The primary focus of Nick DeLilloAEs new book is on object-oriented design (OOD) using the Standard Template Library (STL). The STL provides reusable, reliable components for software design so students donAEt have to be concerned with the correctness and efficiency of the code they design. The author assumes students have prior knowledge of data structures and algorithms, then builds upon this knowledge by introducing the use of the STL. Chapters 1-4 serve as a review of Data Structures and Algorithms including such topics as encapsulation, inheritance, polymorphism, and traditional data structures. In Chapter 5, the transition is made to using the STL to accomplish these same tasks, enabling students to see the benefit of using these predefined tools. The students also are introduced to OOD projects and how the STL is a powerful tool for this type of work. While several texts may cover pieces of these topics, this is the first text that covers them in one comprehensive book."


Table of Contents

Chapter 1 Classesp. 1
Chapter Objectivesp. 1
1.1 Introductionp. 1
1.2 Principles of Object-Oriented Designp. 2
1.3 Classes and Objectsp. 7
1.4 Constructors and Destructors: An Examplep. 9
1.5 Implementation Detailsp. 13
1.6 Templatesp. 15
1.7 An Abstraction for Complex Numbersp. 23
1.8 Suggested Improvements for the Design of the complex Classp. 30
1.9 Exceptions and Exception Handlingp. 33
1.10 static Members of a Classp. 38
1.11 Chapter Summaryp. 44
Exercisesp. 46
Programming Projectsp. 52
Referencesp. 53
Chapter 2 Inheritance and Polymorphismp. 54
Chapter Objectivesp. 54
2.1 Introductionp. 54
2.2 Inheritance, Base Classes, and Derived Classesp. 55
2.3 public Inheritancep. 58
2.4 protected Members of a Base Classp. 60
2.5 private and protected Inheritancep. 66
2.6 Multiple Inheritancep. 67
2.7 Polymorphism and virtual Functionsp. 71
2.8 Pure virtual Functions and Abstract Classesp. 75
2.9 Implications of Inheritance and Polymorphism for Software Engineeringp. 82
2.10 Chapter Summaryp. 83
Exercisesp. 85
Programming Projectp. 98
Chapter 3 Search and Sortp. 100
Chapter Objectivesp. 100
3.1 Introductionp. 100
3.2 The Concept of an Algorithmp. 101
3.3 Design with Classes and Objectsp. 102
3.4 Efficiency Issues: Preliminary Discussionp. 103
3.5 The Principle of Finite Inductionp. 104
3.6 Comparing Algorithms: Big-O Notationp. 105
3.7 Search Algorithms for Arrays. Linear (Sequential) Searchp. 106
3.8 Analysis of Linear Searchp. 108
3.9 Review of Recursive Programmingp. 109
3.10 Binary Searchp. 112
3.11 Analysis of Binary Searchp. 115
3.12 Sorting Algorithms: Selection Sort and Insertion Sortp. 115
3.13 Analysis of Selection Sort and Insertion Sortp. 118
3.14 Quicksort and Recursive Algorithmsp. 119
3.15 Analysis of Quicksortp. 125
3.16 Mergesortp. 126
3.17 Analysis of Mergesortp. 131
3.18 Chapter Summaryp. 132
Exercisesp. 133
Programming Projectsp. 136
Referencesp. 138
Chapter 4 Hashing: Prelude to the Standard Template Libraryp. 139
Chapter Objectivesp. 139
4.1 Introductionp. 139
4.2 Hashing as an Efficient Method of Data Storage and Retrievalp. 140
4.3 Choosing an Appropriate Hash Functionp. 143
4.4 Strategies for Resolving Hash Collisionsp. 146
4.5 Resolving Hash Collisions Using Buckets and Linked Listsp. 151
4.6 Implementation of Hashing Using Class Templatesp. 155
4.7 Namespacesp. 163
4.8 Chapter Summaryp. 171
Exercisesp. 172
Programming Projectp. 175
Referencesp. 176
Chapter 5 Overview of the Components of the STLp. 177
Chapter Objectivesp. 177
5.1 Historical Introductionp. 177
5.2 Overview of the STL and Its Importancep. 178
5.3 Containersp. 179
5.4 Iteratorsp. 181
5.5 Description and Classification of Iteratorsp. 184
5.6 Algorithmsp. 197
5.7 Function Objectsp. 202
5.8 Adaptorsp. 209
5.9 Chapter Summaryp. 214
Exercisesp. 216
Programming Projectp. 219
Chapter 6 Sequence Containersp. 220
Chapter Objectivesp. 220
6.1 Introductionp. 220
6.2 The vector Class Templatep. 220
6.3 The Constructors for vector: explicit Declarationsp. 222
6.4 Description of Other Member Functions of vectorp. 226
6.5 An Application of the vector Classp. 238
6.6 An Introduction to Dequesp. 241
6.7 An Application of the deque Class: Pseudorandom and Random Numbersp. 242
6.8 An Introduction to STL Listsp. 246
6.9 The Standard Class Template list: Basic Member Functionsp. 247
6.10 The Standard Class Template list: More Specialized Member Functionsp. 253
6.11 Application of the list Class Template: Sorting Randomly Generated Odd and Even Positive Integersp. 260
6.12 Chapter Summaryp. 264
Exercisesp. 265
Programming Projectsp. 271
Referencesp. 271
Chapter 7 Container Adaptorsp. 272
Chapter Objectivesp. 272
7.1 Introductionp. 272
7.2 The Stack Abstractionp. 272
7.3 Implementation of Stacks Using the stack Container Adaptorp. 273
7.4 Applications of the Stack ADTp. 276
7.5 The Queue Abstractionp. 290
7.6 Implementation of Queues Using STL's queue Container Adaptorp. 291
7.7 Applications of the Queue ADTp. 291
7.8 The Priority Queue Abstractionp. 303
7.9 Applications of the Priority Queue ADTp. 305
7.10 Chapter Summaryp. 312
Exercisesp. 314
Programming Projectsp. 316
Chapter 8 Generic Algorithmsp. 317
Chapter Objectivesp. 317
8.1 Introductionp. 317
8.2 A General Overview of the Generic Algorithms in the Standard Libraryp. 318
8.3 Nonmutating Sequence Algorithmsp. 319
8.4 Mutating Sequence Algorithmsp. 333
8.5 Sorting-Related Algorithmsp. 348
8.6 Generalized Numeric Algorithmsp. 365
8.7 Chapter Summaryp. 369
Exercisesp. 370
Programming Projectp. 374
Referencesp. 375
Chapter 9 Sorted Associative Containersp. 376
Chapter Objectivesp. 376
9.1 Introductionp. 376
9.2 Sets and Multisetsp. 377
9.3 Set Operationsp. 388
9.4 Implementation Details: Binary Search Trees and Red-Black Treesp. 394
9.5 Maps and Multimapsp. 403
9.6 Applicationsp. 409
9.7 Chapter Summaryp. 420
Exercisesp. 421
Programming Projectsp. 423
Referencep. 423
Appendix A Local Area Network Simulatorp. 424
Glossaryp. 441
Indexp. 455