Lập trình hướng đối
tượng - STL
1
Chương 6
Standard Template Library
Lập trình hướng đối
tượng - STL
2
The Standard Template Library
•
Origins of STL
•
Generic programming
•
STL components
•
STL installation
•
STL header files
•
STL incompatibilities
Lập trình hướng đối
tượng - STL
3
The Standard Template Library
•
Standard Template Library (STL)
•
!!
""
Lập trình hướng đối
tượng - STL
4
Problems with libraries
•
#
$
•
%
&'
–
(
–
()
–
*
Lập trình hướng đối
tượng - STL
5
Origins of STL
•
(
+,( !!
•
+-.
/0&
1223
!!
Lập trình hướng đối
tượng - STL
6
#4
•
+,(
'
–
5)
–
(
–
6
–
78
–
+
Lập trình hướng đối
tượng - STL
7
6
•
9
Lập trình hướng đối
tượng - STL
8
6
•
5:
•
:
:
Lập trình hướng đối
tượng - STL
9
6
•
,
)
Lập trình hướng đối
tượng - STL
10
•
•
6
•
(
•
+
•
78
•
+
Lập trình hướng đối
tượng - STL
11
•
+
8
•
:
'sequential
containersassociative
containers
Lập trình hướng đối
tượng - STL
12
$
•
$
$
'
;<
$;<
;<
Lập trình hướng đối
tượng - STL
13
+
•
Associative containers
&
'
;=<
;=<
;=<
;=<
Lập trình hướng đối
tượng - STL
14
6(
•
(
•
(-
Lập trình hướng đối
tượng - STL
15
6((
•
5
•
%
Lập trình hướng đối
tượng - STL
16
#include <algorithm>
#include <cstring>
#include <cassert>
void main()
{
char string1[ ] = "Central Queensland";
int length = strlen(string1);
// Reverse the array
std::reverse(&string1[0], &string1[length]);
// Check that the reversal was successful
assert(strcmp(string1, "dnalsneeuQ lartneC") == 0);
}
Lập trình hướng đối
tượng - STL
17
#include <algorithm>
#include <vector>
#include <cassert>
using namespace::std;
// Return aVector containing the characters of aString
// (not including the terminating null character).
vector<char> getVector(char* aString)
{
vector<char> aVector;
while (*aString != '\0')
aVector.push_back(*aString++);
return aVector;
}
Lập trình hướng đối
tượng - STL
18
int main(void)
{
vector<char> vector1 = getVector("Central
Queensland");
// Reverse the vector
reverse(vector1.begin(), vector1.end());
// Check that the reversal was successful
assert(vector1 == getVector("dnalsneeuQ lartneC"));
return 0;
}
Lập trình hướng đối
tượng - STL
19
(
•
Iterators&8
•
•
5 : ''
Lập trình hướng đối
tượng - STL
20
#include <algorithm>
#include <vector>
#include <iostream>
using namespace::std;
// Return aVector containing the characters of aString
// (not including the terminating null character).
vector<char> getVector(char* aString)
{
vector<char> aVector;
while (*aString != '\0')
aVector.push_back(*aString++);
return aVector;
}
Lập trình hướng đối
tượng - STL
21
int main(void)
{
vector<char> vector1 = getVector("Central
Queensland");
vector<char>::iterator i;
// Reverse the vector
reverse(vector1.begin(), vector1.end());
// Display the contents of the vector
for (i = vector1.begin(); i != vector1.end(); i++)
cout << *i; cout << endl;
return 0; }
Lập trình hướng đối
tượng - STL
22
+(
•
+adaptor:
•
+:
Lập trình hướng đối
tượng - STL
23
+((
•
:&
'container adaptors
iterator adaptorsfunction
adaptors
•
(
7
8
Lập trình hướng đối
tượng - STL
24
•
+&
&$
&&
•
&
$
'
–
&;;<<&
–
&;$;<<&
$
&+(
Lập trình hướng đối
tượng - STL
25
&+((
–
&;;<<&
•
&:
>
8