350 likes | 366 Views
Chapter 4. Standard Template Library (STL). Chapter Objectives. Learn about the Standard Template Library (STL) Become familiar with the three basic components of the STL: containers, iterators, and algorithms Explore how vector and deque containers are used to manipulate data in a program
E N D
Chapter 4 Standard Template Library (STL) Data Structures Using C++
Chapter Objectives • Learn about the Standard Template Library (STL) • Become familiar with the three basic components of the STL: containers, iterators, and algorithms • Explore how vector and deque containers are used to manipulate data in a program • Discover the use of iterators Data Structures Using C++
Components of the STL • Containers • Iterators • Algorithms Data Structures Using C++
Container Types • Sequence containers (sequential containers) • Associative containers • Container adapters Data Structures Using C++
Sequence Containers • Vector • Deque • list Data Structures Using C++
Ways to Declare and Initialize a Vector Container Data Structures Using C++
Operations to Access the Elements of a Vector Container Data Structures Using C++
Operations on a Vector Container Data Structures Using C++
Functions to Determine the Size of a Vector Container Data Structures Using C++
Member Functions Common to All Containers Data Structures Using C++
Member Functions Common to All Containers Data Structures Using C++
Member Functions Common to All Sequence Containers Data Structures Using C++
Prototype of function template copy template<class inputIterator, class outputIterator> outputItr copy(inputIterator first1, inputIterator last, outputIterator first2); Data Structures Using C++
Sequence Container: deque • Deque: double-ended queue • Implemented as dynamic arrays • Elements can be inserted at both ends • To use deque container in a program include statement: #include <deque> Data Structures Using C++
Ways to Declare a deq Object Data Structures Using C++
Operations that Can Be Performed on a deq Object Data Structures Using C++
Types of Iteration • Input Iterators • Output Iterators • Forward Iterators • Bidirectional Iterators • Random Access Iterators Data Structures Using C++
Operations on an Input Iterator Data Structures Using C++
Operations on an Output Iterator Data Structures Using C++
Operations on a Forward Iterator Data Structures Using C++
Operations on a Bidirectional Iterator Data Structures Using C++
Operations on a Random Access Iterator Data Structures Using C++
Iterator Hierarchy Data Structures Using C++
typedefs Common to All Containers Data Structures Using C++
istream_iterator • Used to input data into a program from an input stream • General syntax: istream_iterator<Type> isIdentifier(istream&); Data Structures Using C++
ostream_iterator • Contains the definition of an output stream iterator • General syntax: ostream_iterator<Type> osIdentifier(ostream&); or ostream_iterator<Type> osIdentifier(ostream&, char* deLimit); Data Structures Using C++
Programming Example: Grade Report (Input) A sample input file follows: 345 Lisa Miller 890238 Y 4 Mathematics MTH345 4 A Physics PHY357 3 B ComputerSci CSC478 3 B History HIS356 3 A . . . Input A file containing the data in the form shown previously. Assume the name of the input file is ch4_GradeData.txt and is on floppy disk A. Data Structures Using C++
Programming Example: Grade Report (Output) The desired output for each student is of the following form: Student Name: Lisa Miller Student ID: 890238 Number of courses enrolled: 4 Course No Course Name Credits Grade CSC478 ComputerSci 3 B HIS356 History 3 A MTH345 Mathematics 4 A PHY357 Physics 3 B Data Structures Using C++
Programming Example: Grade Report • Course Component • Set the course information • Print the course information • Show the credit hours • Show the course number • Show the grade Data Structures Using C++
UML Diagram of the class courseType Data Structures Using C++
Programming Example: Grade Report • Student Component • Set the student information • Print the student information • Calculate the number of credit hours taken • Calculate the GPA • Calculate the billing amount • Because the grade report will print the courses in ascending order, sort the courses according to the course number Data Structures Using C++
UML Diagram of the class studentType and the Inheritance Hierarchy Data Structures Using C++
Programming Example: Grade Report (Main Algorithm) • Declare the variables • Open the input file • If the input file does not exist, exit the program • Open the output file • Get the tuition rate • Load the students’ data • Print the grade reports Data Structures Using C++
Chapter Summary • Components of the STL • Types of Containers • Operations on Containers • Sequence Containers • Deque • Vector Data Structures Using C++
Chapter Summary • Iterators • Types of iteration • Operations on iterators • Programming example Data Structures Using C++