
Data Structures with STL
Prentice Hall (Publisher)
Published on 5. December 2000
Book
Hardback
432 pages
978-0-13-028927-8 (ISBN)
Description
*Learn data structures and the C++ Standard Template Library together! *Teaches the advanced C++ features you need to know first *Easy techniques based on real code examples *Supercharge C++ code performance-and your own productivity! Supercharge your C++ code! Master data structures and STL together! When you understand data structures, you can command many of the most powerful, efficient algorithms ever created! Better yet, the C++ Standard Template Library bundles dozens of these advanced algorithms in a simple, reliable, easy-to-use form. Now, you can learn data structures and STL together, with the first book that teaches them both: Data Structures with STL! Renowned programming instructors William Murray and Chris Pappas begin with the intermediate-to-advanced C++ features you'll need to know first, including namespaces, void * pointers, generic types, and template development.Then, using extensive code examples, they introduce every aspect of working with data structures and STL: *Understanding STL extensible framework and components *Working with STL: containers, iterators, and algorithms *Dynamic memory allocation/deallocation *STL-based portable solutions for array creation, element insertion/deletion, sorting, element output, and more *Clean, seamless integration of iostreams and exception handling Now's your chance to supercharge the performance and reliability of all your C++ code-and dramatically enhance your own productivity at the same time.
Data Structures with STL shows you how-more simply and easily than you ever thought possible!
Data Structures with STL shows you how-more simply and easily than you ever thought possible!
More details
Language
English
Place of publication
Upper Saddle River
United States
Publishing group
Pearson Education (US)
Target group
College/higher education
Dimensions
Height: 242 mm
Width: 185 mm
Thickness: 33 mm
Weight
995 gr
ISBN-13
978-0-13-028927-8 (9780130289278)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Persons
WILLIAM MURRAY and CHRIS PAPPAS teach computer science at the B.C.C. campus of the S.U.N.Y. system in Binghamton, NY. They have co-authored over four dozen books on such programming topics as assembly language, Visual Basic, C and C++, HTML, Visual J++, Java, JavaScript, OS/2, Windows 95, Windows NT, and more. Their books have been translated into more than 25 languages.
Content
1. Easing into Standard Template Library (STL) Using Arrays-STL Vector.
What Do I Need to Know to Use This Book? Why Do I Need Calculus When I Can Buy a Calculator? The Complexity of Multiplatform Target Environments. Unintentional Misuse or Ignorance of C/C++ Features. Data Structures-The Course to Separate Hackers from Pros! So, Just What Is the Standard Template Library? The Origins of STL. What Do I Need to Know to Take Advantage of STL? A High-Level View of STL. Kudos to the ANSI/ISO C++ Committee. STL's Tri-Component Nature. Latest C++ ANSI/ISO Language Updates. Using namespace. namespace Syntax. The using namespace Statement. The Selective using Statement. Renaming namespaces. static File Scope vs Unnamed namespaces. New Casting Operations. Dynamic Casting. Static Casting. Newer C-Type Cast. Constant Cast. Run-Time Type Information (RTTI). Introduction to the Standard C++ Library. The Standard C++ Libraries. Your First Standard C++ Library Application. Implementing Your Own Template. Your First class Template. Function Templates Requirements. Using a Class Template. Class Template Parameters. Default Template Parameters. The Standard Template Library. STL Components. Rules for Using STL. Function Objects. STL Function Objects. STL Function Adapters. Standard Template Library Algorithms. Standard C++ Library Language Support. cstddef. Implementation Properties: limits, climits, cfloat. Exception Handling. Additional Support. STL Review. Sample Code. The find.cpp Application. The rndshfl.cpp Application. The removif.cpp Application. The setunon.cpp Application. Conclusion.
2. Lists-STL List.
Lists Using Arrays. Constructing an Array of Structures. Dynamic Memory Allocation-Linked Lists. Considerations When Using Linked Lists. A Simple Procedural Linked List. An Object-Oriented Linked List in C++. Creating a Parent Class. A Derived Child Class. Using a Friend Class. Examining the Complete Program. Linked-List Output. Lists Using STL. Vector. List. STL Vector Versus List Efficiency. Summary.
3. Stacks and Queues-STL Adaptors.
Dynamic Arrays. Making Vectors Data-Type Specific. How To Instantiate a Vector. An Example Using Vector Template Functions. Referencing Single Elements. Adding and Deleting Elements. Determining the Size of a Vector Container. Using the Template with Vectors. Example Programs. The ADT Stack. Creating a Stack Using an Array. Pushing Elements onto a Stack. Popping Elements from a Stack. Viewing the Top Element of a Stack. The STL Stack. STL Defines Stacks and Queues as Adaptors. Template Syntax. Template Overloaded Operators. Template Methods. Example Program. The ADT Queue. Creating a Queue Using an Array. Inserting Elements into a Queue. Removing Elements from a Queue. Viewing the Front Element of a Queue. The STL Queue. Template Syntax. Template Methods. Example Programs. Summary.
4. Double-Ended Lists-STL Deque.
Object-Oriented Deques. Deque Operations. The Template. The Template Syntax. Overloaded Operators. Template Methods. Sample Code. The arrayDQ.cpp Application. The vectorDQ.cpp Application. The dequeDQ.cpp Application. The deque.cpp Application. Summary.
5. Sets-STL Sets and Multisets.
Binary Sequences and the Template. Template Syntax. Template Overloaded Operators. Template Methods. Sample Code. Sets and Multisets Using the and Templates. The and Template Syntax. The and Template Functions. The Template Methods. and Sample Code. Summary.
6. Binary Trees.
Dynamic Linked List Fundamentals. The Container. Template Syntax. allocator_type. size_type. difference_type. reference. const_reference. value_type. iterator. const_iterator. reverse_iterator. const_reverse_iterator. Template Methods. Sample Code. The list1.cpp Application. The list2.cpp Application. The list3.cpp Application. Recursive Calls and the Call Stack. View Disassembly Code. The "Big-O" Function. Binary Tree Fundamentals. STL Vector-Binary Tree. Templatized Class Binary Tree. STL Stack-Binary Tree. Summary.
7. Searching and Sorting.
Binary Search Using bsearch() to Search a String. The STL basic_string Class and Searches. Using STL find_first_of() to Locate a Character. Using the STL find_first_not_of() to Locate a Character. Using the STL find() to Locate One String in Another. A Bubble Sort Routine to Sort an Array of Integers (Ascending). A Quick Sort Routine to Sort an Array of Integers (Ascending). Quick Sort Using qsort() to Sort an Array of Integers (Ascending). Sorting under STL. Using the STL sort() to Sort a of Integers (Ascending). Using the STL sort() to Sort a of Integers (Descending). Using the STL sort() to Sort a of Strings (Ascending). Using merge() to Merge Two Vectors Containing Ordered Elements. Summary.
8. Priority Queues.
FIFO with Priorities. How Priority Queues Differ from Queues. Priority Queue Operations. STL Standard Header. Type Definitions. Container. Constructors. Other Operations. The Underlying Heap. C++ Object Examples. arrayPQ.cpp. dListPQ.cpp. STL Priority Queue Examples. STL_PQ1.cpp. STL_PQ2.cpp. Summary.
9. The STL and Templates.
Maps and Containers. and Template Syntax. and Template Methods. Sample Code. A Application. A Application. Summary.
10. Hash Tables and the STL.
The STL and Hashing. Hashing Function. The Hash Key. Generating Key Values-A Simple Hashing Function. Collision Resolution. The Birthday Party. Open Addressing. Buckets and Chains. Summary.
11. Matrices and the STL.
One-Dimensional Arrays and Vectors. Using Traditional C++ Implementation: Arrays. Using an STL Implementation: . Matrices. Using Traditional C++ Implementation: Arrays. Using an STL Implementation: Vector of Vectors. Sparse Arrays (Matrices). Summary.
12. Graphs and the STL.
Graph Definitions and Terminology. What Is a Graph? Operations. Graph Implementation. Adjacency Matrix. Adjacency List. Graph Traversals. Depth-First Search. Breadth-First Search. Graph Application. Floyd's Algorithm Implementation with Arrays. Floyd's Algorithm Implementation with STL Vectors. Summary.
Index.
What Do I Need to Know to Use This Book? Why Do I Need Calculus When I Can Buy a Calculator? The Complexity of Multiplatform Target Environments. Unintentional Misuse or Ignorance of C/C++ Features. Data Structures-The Course to Separate Hackers from Pros! So, Just What Is the Standard Template Library? The Origins of STL. What Do I Need to Know to Take Advantage of STL? A High-Level View of STL. Kudos to the ANSI/ISO C++ Committee. STL's Tri-Component Nature. Latest C++ ANSI/ISO Language Updates. Using namespace. namespace Syntax. The using namespace Statement. The Selective using Statement. Renaming namespaces. static File Scope vs Unnamed namespaces. New Casting Operations. Dynamic Casting. Static Casting. Newer C-Type Cast. Constant Cast. Run-Time Type Information (RTTI). Introduction to the Standard C++ Library. The Standard C++ Libraries. Your First Standard C++ Library Application. Implementing Your Own Template. Your First class Template. Function Templates Requirements. Using a Class Template. Class Template Parameters. Default Template Parameters. The Standard Template Library. STL Components. Rules for Using STL. Function Objects. STL Function Objects. STL Function Adapters. Standard Template Library Algorithms. Standard C++ Library Language Support. cstddef. Implementation Properties: limits, climits, cfloat. Exception Handling. Additional Support. STL Review. Sample Code. The find.cpp Application. The rndshfl.cpp Application. The removif.cpp Application. The setunon.cpp Application. Conclusion.
2. Lists-STL List.
Lists Using Arrays. Constructing an Array of Structures. Dynamic Memory Allocation-Linked Lists. Considerations When Using Linked Lists. A Simple Procedural Linked List. An Object-Oriented Linked List in C++. Creating a Parent Class. A Derived Child Class. Using a Friend Class. Examining the Complete Program. Linked-List Output. Lists Using STL. Vector. List. STL Vector Versus List Efficiency. Summary.
3. Stacks and Queues-STL Adaptors.
Dynamic Arrays. Making Vectors Data-Type Specific. How To Instantiate a Vector. An Example Using Vector Template Functions. Referencing Single Elements. Adding and Deleting Elements. Determining the Size of a Vector Container. Using the Template with Vectors. Example Programs. The ADT Stack. Creating a Stack Using an Array. Pushing Elements onto a Stack. Popping Elements from a Stack. Viewing the Top Element of a Stack. The STL Stack. STL Defines Stacks and Queues as Adaptors. Template Syntax. Template Overloaded Operators. Template Methods. Example Program. The ADT Queue. Creating a Queue Using an Array. Inserting Elements into a Queue. Removing Elements from a Queue. Viewing the Front Element of a Queue. The STL Queue. Template Syntax. Template Methods. Example Programs. Summary.
4. Double-Ended Lists-STL Deque.
Object-Oriented Deques. Deque Operations. The Template. The Template Syntax. Overloaded Operators. Template Methods. Sample Code. The arrayDQ.cpp Application. The vectorDQ.cpp Application. The dequeDQ.cpp Application. The deque.cpp Application. Summary.
5. Sets-STL Sets and Multisets.
Binary Sequences and the Template. Template Syntax. Template Overloaded Operators. Template Methods. Sample Code. Sets and Multisets Using the and Templates. The and Template Syntax. The and Template Functions. The Template Methods. and Sample Code. Summary.
6. Binary Trees.
Dynamic Linked List Fundamentals. The Container. Template Syntax. allocator_type. size_type. difference_type. reference. const_reference. value_type. iterator. const_iterator. reverse_iterator. const_reverse_iterator. Template Methods. Sample Code. The list1.cpp Application. The list2.cpp Application. The list3.cpp Application. Recursive Calls and the Call Stack. View Disassembly Code. The "Big-O" Function. Binary Tree Fundamentals. STL Vector-Binary Tree. Templatized Class Binary Tree. STL Stack-Binary Tree. Summary.
7. Searching and Sorting.
Binary Search Using bsearch() to Search a String. The STL basic_string Class and Searches. Using STL find_first_of() to Locate a Character. Using the STL find_first_not_of() to Locate a Character. Using the STL find() to Locate One String in Another. A Bubble Sort Routine to Sort an Array of Integers (Ascending). A Quick Sort Routine to Sort an Array of Integers (Ascending). Quick Sort Using qsort() to Sort an Array of Integers (Ascending). Sorting under STL. Using the STL sort() to Sort a of Integers (Ascending). Using the STL sort() to Sort a of Integers (Descending). Using the STL sort() to Sort a of Strings (Ascending). Using merge() to Merge Two Vectors Containing Ordered Elements. Summary.
8. Priority Queues.
FIFO with Priorities. How Priority Queues Differ from Queues. Priority Queue Operations. STL Standard Header. Type Definitions. Container. Constructors. Other Operations. The Underlying Heap. C++ Object Examples. arrayPQ.cpp. dListPQ.cpp. STL Priority Queue Examples. STL_PQ1.cpp. STL_PQ2.cpp. Summary.
9. The STL and Templates.
Maps and Containers. and Template Syntax. and Template Methods. Sample Code. A Application. A Application. Summary.
10. Hash Tables and the STL.
The STL and Hashing. Hashing Function. The Hash Key. Generating Key Values-A Simple Hashing Function. Collision Resolution. The Birthday Party. Open Addressing. Buckets and Chains. Summary.
11. Matrices and the STL.
One-Dimensional Arrays and Vectors. Using Traditional C++ Implementation: Arrays. Using an STL Implementation: . Matrices. Using Traditional C++ Implementation: Arrays. Using an STL Implementation: Vector of Vectors. Sparse Arrays (Matrices). Summary.
12. Graphs and the STL.
Graph Definitions and Terminology. What Is a Graph? Operations. Graph Implementation. Adjacency Matrix. Adjacency List. Graph Traversals. Depth-First Search. Breadth-First Search. Graph Application. Floyd's Algorithm Implementation with Arrays. Floyd's Algorithm Implementation with STL Vectors. Summary.
Index.