Data Structures Using C++ 2E
Chapter 4
Standard Template Library (STL) I
Objectives
Data Structures Using C++ 2E
2
Components of the STL
Data Structures Using C++ 2E
3
Container Types
Data Structures Using C++ 2E
4
Sequence Containers
Data Structures Using C++ 2E
5
Sequence Container: vector
Data Structures Using C++ 2E
6
Sequence Container: vector (cont’d.)
Data Structures Using C++ 2E
7
Sequence Container: vector (cont’d.)
Data Structures Using C++ 2E
8
TABLE 4-1 Various ways to declare and initialize
a vector container
Sequence Container: vector (cont’d.)
Data Structures Using C++ 2E
9
Sequence Container: vector (cont’d.)
Data Structures Using C++ 2E
10
TABLE 4-2 Operations to access the elements of a vector container
Sequence Container: vector (cont’d.)
Data Structures Using C++ 2E
11
Sequence Container: vector (cont’d.)
Data Structures Using C++ 2E
12
TABLE 4-3 Various operations on a vector container
Sequence Container: vector (cont’d.)
Data Structures Using C++ 2E
13
TABLE 4-3 Various operations on a vector container (cont’d.)
Sequence Container: vector (cont’d.)
Data Structures Using C++ 2E
14
Declaring an Iterator to a Vector Container
Data Structures Using C++ 2E
15
Declaring an Iterator to a Vector Container (cont’d.)
vector<int>::iterator intVecIter;
Data Structures Using C++ 2E
16
Declaring an Iterator to a Vector Container (cont’d.)
Data Structures Using C++ 2E
17
Declaring an Iterator to a Vector Container (cont’d.)
Data Structures Using C++ 2E
18
Containers and the Functions begin and end
Data Structures Using C++ 2E
19
Containers and the Functions begin and end (cont’d.)
Data Structures Using C++ 2E
20
TABLE 4-4 Functions to determine the size of a vector container
Member Functions Common to All Containers
Data Structures Using C++ 2E
21
Data Structures Using C++ 2E
22
TABLE 4-5 Member functions common to all containers
Data Structures Using C++ 2E
23
TABLE 4-5 Member functions common to all containers (cont’d.)
Member Functions Common to Sequence Containers
Data Structures Using C++ 2E
24
TABLE 4-6 Member functions common to all sequence containers
The copy Algorithm
Data Structures Using C++ 2E
25
ostream Iterator and Function copy
Data Structures Using C++ 2E
26
Sequence Container: deque
Data Structures Using C++ 2E
27
Sequence Container: deque (cont’d.)
Data Structures Using C++ 2E
28
TABLE 4-7 Various ways to declare a deque object
Sequence Container: deque (cont’d.)
Data Structures Using C++ 2E
29
TABLE 4-8 Various operations that can be performed
on a deque object
Iterators
++cntItr;
*cntItr;
Data Structures Using C++ 2E
30
Types of Iterators
Data Structures Using C++ 2E
31
Input Iterators
Data Structures Using C++ 2E
32
Input Iterators (cont’d.)
Data Structures Using C++ 2E
33
TABLE 4-9 Operations on an input iterator
Output Iterators
Data Structures Using C++ 2E
34
Output Iterators (cont’d.)
Data Structures Using C++ 2E
35
TABLE 4-10 Operations on an output iterator
Forward Iterators
Data Structures Using C++ 2E
36
Forward Iterators (cont’d.)
Data Structures Using C++ 2E
37
TABLE 4-11 Operations on a forward iterator
Bidirectional Iterators
Data Structures Using C++ 2E
38
Bidirectional Iterators (cont’d.)
Data Structures Using C++ 2E
39
TABLE 4-12 Additional operations on a bidirectional iterator
Random Access Iterators
Data Structures Using C++ 2E
40
Random Access Iterators (cont’d.)
Data Structures Using C++ 2E
41
TABLE 4-13 Additional operations on a random access iterator
Iterators (cont’d.)
Data Structures Using C++ 2E
42
Iterators (cont’d.)
Data Structures Using C++ 2E
43
Iterators (cont’d.)
Data Structures Using C++ 2E
44
Iterators (cont’d.)
Data Structures Using C++ 2E
45
Iterators (cont’d.)
Data Structures Using C++ 2E
46
TABLE 4-14 Various typedefs common to all containers
Stream Iterators
Data Structures Using C++ 2E
47
Stream Iterators (cont’d.)
Data Structures Using C++ 2E
48
Summary
Data Structures Using C++ 2E
49
Summary (cont’d.)
Data Structures Using C++ 2E
50