Data Structures and Other Objects Using C++.
Material type:
- 9788131740002
- 23rd 005.13C
Item type | Current library | Call number | Materials specified | Status | Barcode | |
---|---|---|---|---|---|---|
![]() |
Digital Library Digital Library | 005.13C MAI-D4 | Online access | Available | E0116 |
Cover -- CONTENTS -- CHAPTER 1 THE PHASES OF SOFTWARE DEVELOPMENT -- 1.1 Specification, Design, Implementation -- Design Concept: Decomposing the Problem -- Preconditions and Postconditions -- Using Functions Provided by Other Programmers -- Implementation Issues for the ANSI/ISO C++ Standard -- C++ Feature: The Standard Library and the Standard Namespace -- Programming Tip: Use Declared Constants -- Clarifying the Const Keyword Part 1: Declared Constants -- Programming Tip: Use Assert to Check a Precondition -- Programming Tip: Use EXIT_SUCCESS in a Main Program -- C++ Feature: Exception Handling -- Self-Test Exercises for Section 1.1 -- 1.2 Running Time Analysis -- The Stair-Counting Problem -- Big-O Notation -- Time Analysis of C++ Functions -- Worst-Case, Average-Case, and Best-Case Analyses -- Self-Test Exercises for Section 1.2 -- 1.3 Testing and Debugging -- Choosing Test Data -- Boundary Values -- Fully Exercising Code -- Debugging -- Programming Tip: How to Debug -- Self-Test Exercises for Section 1.3 -- Chapter Summary -- Solutions to Self-Test Exercises -- CHAPTER 2 ABSTRACT DATA TYPES AND C++ CLASSES -- 2.1 Classes and Members -- Programming Example: The Throttle Class -- Clarifying the Const Keyword Part 2: Constant Member Functions -- Using a Class -- A Small Demonstration Program for the Throttle Class -- Implementing Member Functions -- Member Functions May Activate Other Members -- Programming Tip: Style for Boolean Variables -- Self-Test Exercises for Section 2.1 -- 2.2 Constructors -- The Throttle's Constructor -- What Happens If You Write a Class with No Constructors? -- Programming Tip: Always Provide Constructors -- Revising the Throttle's Member Functions -- Inline Member Functions -- Programming Tip: When to Use an Inline Member Function -- Self-Test Exercises for Section 2.2.
2.3 Using a Namespace, Header File, and Implementation File -- Creating a Namespace -- The Header File -- Describing the Value Semantics of a Class Within the Header File -- Programming Tip: Document the Value Semantics -- The Implementation File -- Using the Items in a Namespace -- Pitfall: Never Put a Using Statement Actually in a Header File -- Self-Test Exercises for Section 2.3 -- 2.4 Classes and Parameters -- Programming Example: The Point Class -- Default Arguments -- Programming Tip: A Default Constructor Can Be Provided by Using Default Arguments -- Parameters -- Pitfall: Using a Wrong Argument Type for a Reference Parameter -- Clarifying the Const Keyword Part 3: Const Reference Parameters -- Programming Tip: Use const Consistently -- When the Type of a Function's Return Value Is a Class -- Self-Test Exercises for Section 2.4 -- 2.5 Operator Overloading -- Overloading Binary Comparison Operators -- Overloading Binary Arithmetic Operators -- Overloading Output and Input Operators -- Friend Functions -- Programming Tip: When to Use a Friend Function -- The Point Class-Putting Things Together -- Summary of Operator Overloading -- Self-Test Exercises for Section 2.5 -- 2.6 The Standard Template Libary and the Pair Class -- Chapter Summary -- Solutions to Self-Test Exercises -- Programming Projects -- CHAPTER 3 CONTAINER CLASSES -- 3.1 The Bag Class -- The Bag Class-Specification -- C++ Feature: Typedef Statements Within a Class Definition -- C++ Feature: The std::size_t Data Type -- Clarifying the Const Keyword Part 4: Static Member Constants -- Older Compilers Do Not Support Initialization of Static Member Constants -- The Bag Class-Documentation -- Documenting the Value Semantics -- The Bag Class-Demonstration Program -- The Bag Class-Design -- Pitfall: The value_type Must Have a Default Constructor -- The Invariant of a Class.
The Bag Class-Implementation -- Pitfall: Needing to Use the Full Type Name bag::size_type -- Programming Tip: Make Assertions Meaningful -- C++ Feature: The Copy Function from the C++ Standard Library -- The Bag Class-Putting the Pieces Together -- Programming Tip: Document the Class Invariant in the Implementation File -- The Bag Class-Testing -- Pitfall: An Object Can Be an Argument to Its Own Member Function -- The Bag Class-Analysis -- Self-Test Exercises for Section 3.1 -- 3.2 Programming Project: The Sequence Class -- The Sequence Class-Specification -- The Sequence Class-Documentation -- The Sequence Class-Design -- The Sequence Class-Pseudocode for the Implementation -- Self-Test Exercises for Section 3.2 -- 3.3 Interactive Test Programs -- C++ Feature: Converting Input to Uppercase Letters -- C++ Feature: The Switch Statement -- Self-Test Exercises for Section 3.3 -- 3.4 The STL Multiset Class and Its Iterator -- The Multiset Template Class -- Some Multiset Members -- Iterators and the [...) Pattern -- Pitfall: Do Not Access an Iterator's Item After Reaching end( ) -- Testing Iterators for Equality -- Other Multiset Operations -- Invalid Iterators -- Clarifying the Const Keyword Part 5: Const Iterators -- Pitfall: Changing a Container Object Can Invalidate Its Iterators -- Self-Test Exercises for Section 3.4 -- Chapter Summary -- Solutions to Self-Test Exercises -- Programming Projects -- CHAPTER 4 POINTERS AND DYNAMIC ARRAYS -- 4.1 Pointers and Dynamic Memory -- Pointer Variables -- Using the Assignment Operator with Pointers -- Dynamic Variables and the new Operator -- Using new to Allocate Dynamic Arrays -- The Heap and the bad_alloc Exception -- The delete Operator -- Programming Tip: Define Pointer Types -- Self-Test Exercises for Section 4.1 -- 4.2 Pointers and Arrays as Parameters.
Clarifying the Const Keyword Part 6: Const Parameters That Are Pointers or Arrays -- Self-Test Exercises for Section 4.2 -- 4.3 The Bag Class with a Dynamic Array -- Pointer Member Variables -- Member Functions Allocate Dynamic Memory as Needed -- Programming Tip: Provide Documentation about Possible Dynamic Memory Failure -- Value Semantics -- The Destructor -- The Revised Bag Class-Class Definition -- The Revised Bag Class-Implementation -- Programming Tip: How to Check for Self-Assignment -- Programming Tip: How to Allocate Memory in a Member Function -- The Revised Bag Class-Putting the Pieces Together -- Self-Test Exercises for Section 4.3 -- 4.4 Prescription for a Dynamic Class -- Four Rules -- Special Importance of the Copy Constructor -- Pitfall: Using Dynamic Memory Requires a Destructor, a Copy Constructor, and an Overloaded Assignment Operator -- Self-Test Exercises for Section 4.4 -- 4.5 The STL String Class and a Project -- Null-Terminated Strings -- Initializing a String Variable -- The Empty String -- Reading and Writing String Variables -- Pitfall: Using = and == with Strings -- The strcpy Function -- The strcat Function -- Pitfall: Dangers of strcpy, strcat, and Reading Strings -- The strlen Function -- The strcmp Function -- The String Class-Specification -- Constructor for the String Class -- Overloading the Operator [ ] -- Some Further Overloading -- Other Operations for the String Class -- The String Class-Design -- The String Class-Implementation -- Demonstration Program for the String Class -- Chaining the Output Operator -- Declaring Constant Objects -- Constructor-Generated Conversions -- Using Overloaded Operations in Expressions -- Our String Class Versus the C++ Library String Class -- Self-Test Exercises for Section 4.5 -- 4.6 Programming Project: The Polynomial -- Chapter Summary -- Solutions to Self-Test Exercises.
Programming Projects -- CHAPTER 5 LINKED LISTS -- 5.1 A Fundamental Node Class for Linked Lists -- Declaring a Class for Nodes -- Using a Typedef Statement with Linked-List Nodes -- Head Pointers, Tail Pointers -- The Null Pointer -- The Meaning of a Null Head Pointer or Tail Pointer -- The Node Constructor -- The Node Member Functions -- The Member Selection Operator -- Clarifying the Const Keyword Part 7: The Const Keyword with a Pointer to a Node, and the Need for Two Versions of Some Member Functions -- Programming Tip: A Rule for a Node's Constant Member Functions -- Pitfall: Dereferencing the Null Pointer -- Self-Test Exercises for Section 5.1 -- 5.2 A Linked-List Toolkit -- Linked-List Toolkit-Header File -- Computing the Length of a Linked List -- Programming Tip: How to Traverse a Linked List -- Pitfall: Forgetting to Test the Empty List -- Parameters for Linked Lists -- Inserting a New Node at the Head of a Linked List -- Inserting a New Node That Is Not at the Head -- Pitfall: Unintended Calls to delete and new -- Searching for an Item in a Linked List -- Finding a Node by Its Position in a Linked List -- Copying a Linked List -- Removing a Node at the Head of a Linked List -- Removing a Node That Is Not at the Head -- Clearing a Linked List -- Linked-List Toolkit-Putting the Pieces Together -- Using the Linked-List Toolkit -- Self-Test Exercises for Section 5.2 -- 5.3 The Bag Class with a Linked List -- Our Third Bag-Specification -- Our Third Bag-Class Definition -- How to Make the Bag value_type Match the Node value_type -- Following the Rules for Dynamic Memory Usage in a Class -- The Third Bag Class-Implementation -- Pitfall: The Assignment Operator Causes Trouble with Linked Lists -- Programming Tip: How to Choose Between Approaches -- The Third Bag Class-Putting the Pieces Together -- Self-Test Exercises for Section 5.3.
5.4 Programming Project: The Sequence Class with a Linked List.
Electronic reproduction. Ann Arbor, Michigan : ProQuest Ebook Central, 2018. Available via World Wide Web. Access may be limited to ProQuest Ebook Central affiliated libraries.