Lập trình hướng đối tượng - Chương 6
lượt xem 47
download
Tài liệu tham khảo giáo trình Lập trình hướng đối tượng - Chương 6 : santard templates library
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Lập trình hướng đối tượng - Chương 6
- Chương 6 Standard Template Library 1 Lập trình hướng đối tượng -
- The Standard Template Library • Origins of STL • Generic programming • STL components • STL installation • STL header files • STL incompatibilities 2 Lập trình hướng đối tượng -
- The Standard Template Library • The Standard Template Library (STL) is a generalpurpose library of container classes (such as vectors, lists, sets and maps) and generic algorithms (such as searching, sorting and merging). • The chief difference between STL and other C++ libraries is that STL containers and algorithms can be "plugged" together in a myriad of different useful ways. 3 Lập trình hướng đối tượng -
- Problems with libraries • Writing your own library of container classes can be very frustrating because, even if you are familiar with the best techniques, there is rarely time to implement them. • Buying a commercial library also has its drawbacks: – Incompatibility – Inefficiency – Unwieldy interfaces 4 Lập trình hướng đối tượng -
- Origins of STL • In view of these problems, the ANSI committee for C++ standardisation sought a standard set of container classes. • Alexander Stepanov and Meng Lee of Hewlett Packard Laboratories proposed STL, and in 1994 it was accepted as part of the C++ Standard Library. 5 Lập trình hướng đối tượng -
- Why STL? • STL was chosen as the ANSI standard for several reasons: – Efficiency – Iterators – Generic algorithms – Function objects – Allocators 6 Lập trình hướng đối tượng -
- Generic programming • Research into generic programming has aimed to produce libraries of generic, or reusable, software components. 7 Lập trình hướng đối tượng -
- Generic programming • Each iterator defines the operations that are needed to access the contents of a particular type of container. • Class templates are used to define containers and iterators, and function templates are used to define generic algorithms. 8 Lập trình hướng đối tượng -
- Generic programming • Not every generic algorithm and iterator can be plugged together. STL prohibits some combinations because certain algorithms are only efficient when they are used with certain types of containers. 9 Lập trình hướng đối tượng -
- STL components • Containers • Generic algorithms • Iterators • Adaptors • Function objects • Allocators 10 Lập trình hướng đối tượng -
- Containers • A container is a data structure that stores a collection of objects. • STL defines two categories of containers: sequential containers and associative containers. 11 Lập trình hướng đối tượng -
- Sequential containers • Sequential containers store items in a linear structure. The three sequential container types are: vector deque list 12 Lập trình hướng đối tượng -
- Associative containers • Associative containers store items in a structure suited for fast associative lookup. The four associative container types are: set multiset map multimap 13 Lập trình hướng đối tượng -
- Generic algorithms (I) • In traditional container class libraries, all of the algorithms associated with a particular class are implemented as member functions of that class. • In contrast, most STL algorithms are written as external functions that interact with container classes via iterators. 14 Lập trình hướng đối tượng -
- Generic algorithms (II) • Each algorithm can operate on a variety of containers. • By plugging together different combinations of algorithms and containers you can create the specialised components that are found in other software libraries. 15 Lập trình hướng đối tượng -
- #include #include #include 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 16
- #include #include #include using namespace::std; // Return aVector containing the characters of aString // (not including the terminating null character). vector getVector(char* aString) { vector aVector; while (*aString != '\0') aVector.push_back(*aString++); return aVector; 17 Lập trình hướng đối tượng -
- int main(void) { vector 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; 18 Lập trình hướng đối tượng -
- Iterators • Iterators are pointerlike objects that can be used to visit the individual elements of a container. • STL algorithms are written in terms of iterator parameters, and STL containers provide the iterators that can be plugged into those algorithms. • Each STL container type C defines C::iterator as an iterator type that can be used with type C containers. 19 Lập trình hướng đối tượng -
- #include #include #include using namespace::std; // Return aVector containing the characters of aString // (not including the terminating null character). vector getVector(char* aString) { vector aVector; while (*aString != '\0') aVector.push_back(*aString++); return aVector; } 20 Lập trình hướng đối tượng -
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Lập trình hướng đối tượng với C++ part 6
35 p | 311 | 160
-
Phân tích thiết kế hướng đối tượng (phần 6)
7 p | 301 | 138
-
Tự học lập trình hướng đối tượng và lập trình cơ sở dữ liệu C part 6
40 p | 231 | 110
-
Lập trình hướng đối tượng_ Chapter 6
13 p | 239 | 99
-
Giáo trình Lập trình viên mã nguồn mở PHP (Module 1) - Trung tâm tin học ĐH KHTN
100 p | 268 | 80
-
Giáo trình Lập trình viên mã nguồn mở PHP (Module 2) - Trung tâm tin học ĐH KHTN
101 p | 217 | 73
-
Lập trình hướng đối tượng trong java (Phần 6)
6 p | 171 | 34
-
Giáo trình đào tạo Visual Basic 6.0 - FPT Software Solution
261 p | 49 | 14
-
Giáo trình Lập trình với Microsoft Visual Basic 6.0 - Nguyễn Sơn Hải
159 p | 47 | 13
-
Bài giảng Lập trình hướng đối tượng - Bài 6: Một số kỹ thuật trong kế thừa
0 p | 109 | 5
-
Bài giảng Lập trình hướng đối tượng - Bài 6: Kế thừa
37 p | 76 | 5
-
Bài giảng Lập trình hướng đối tượng: Bài 6 - Kết tập và kế thừa
53 p | 18 | 4
-
Bài giảng Lập trình hướng đối tượng: Bài 6 - ThS. Trịnh Thành Trung
37 p | 35 | 3
-
Bài giảng Lập trình hướng sự kiện: Bài 6 - ThS. Phan Thanh Toàn
46 p | 43 | 3
-
Bài giảng Lab 6: Chuỗi và lập trình hướng đối tượng
8 p | 38 | 2
-
Bài giảng Nguyên lý lập trình hướng đối tượng: Bài 6 - TS. Lý Anh Tuấn
38 p | 26 | 2
-
Bài giảng Lập trình hướng đối tượng: Bài 6 - Nguyễn Khanh Văn
0 p | 41 | 1
-
Bài giảng Lập trình hướng đối tượng: Bài 6 - Phạm Thị Bích Vân
23 p | 57 | 1
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn