1. Trang chủ
  2. » Công Nghệ Thông Tin

Tài liệu lập trình C tiếng Việt lesson 12 STL

34 468 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 34
Dung lượng 2,02 MB

Nội dung

Lập trình hướng đối tượng Bài 11: Thư viện chuẩn Nội dung • Giới thiệu thư viện chuẩn C++ • Container Iterator Giới thiệu thư viện chuẩn C++ Giới thiệu • • • • Là phần chuẩn C++ Được khai báo namespace std Hai thành phần container algorithm Chủ yếu sử dụng template nên gọi thư viện khuôn hình chuẩn (STL – Standard Template Library) • Bao gồm tất header C với tên mới, thí dụ chuyển thành Giới thiệu thành phần • • • • • • • • • • String Regular Expression I/O Stream Smart Pointer Exception Mathematical Utilities Time Utilities Random Number Initializer List Pair Tuple • • • • Function Object Multithreading Type Trait Standard Template Library – STL Containers – STL Algorithms STL Containers STL Containers STL Containers STL Containers STL Algorithms • Thuật toán thường độc lập với container • Một số container có thuật toán riêng • Thuật toán không làm việc trực tiếp với container mà thông qua iterator 10 Set Algorithms 20 Heap Algorithms 21 Minimum/Maximum Algorithms 22 Numerical Processing Algorithms 23 Permutation Algorithms 24 Containers Iterators 25 Container 26 Các yêu cầu phần tử 27 Các yêu cầu phần tử 28 Iterator • Cơ chế chung để truy cập tới phần tử container • Mỗi container cung cấp iterator xác định phù hợp với giao diện chuẩn • Có thể xem iterator trỏ tới phần tử container • Container cung cấp typedef cho iterator Thí dụ std::vector::const_iterator hay std::vector::reverse_iterator • Nó cung cấp phương thức begin(), end(), cbegin()… • Thể khoảng nửa mở [begin, end) 29 30 Move Semantic 31 Giới thiệu • Đòi hỏi thiết lập move toán tử gán move • Copy/move biến thành phần từ đối tượng nguồn tới đối tượng sau reset biến đối tượng nguồn null class Spreadsheet { public: Spreadsheet(Spreadsheet&& src) noexcept; // Move constructor Spreadsheet& operator=(Spreadsheet&& rhs) noexcept; // Move assignment // Remaining code omitted for brevity }; 32 Spreadsheet CreateObject(){ return Spreadsheet(3, 2); } int main(){ vector vec; for (int i = 0; i < 2; ++i) { cout [...]... 27 C c yêu c u đối với phần tử 28 Iterator • C chế chung để truy c p tới c c phần tử c a container • Mỗi container cung c p một iterator x c định c a nó phù hợp với giao diện chuẩn • C thể xem iterator như con trỏ tới c c phần tử c a container • Container cung c p typedef cho iterator Thí dụ std::vector::const_iterator hay std::vector::reverse_iterator • Nó c ng cung c p c c phương th c. .. begin(), end(), cbegin()… • Thể hiện khoảng nửa mở [begin, end) 29 30 Move Semantic 31 Giới thiệu • Đòi hỏi thiết lập move và toán tử gán move • Copy/move c c biến thành phần từ đối tượng nguồn tới đối tượng mới sau đó reset c c biến c a đối tượng nguồn về null class Spreadsheet { public: Spreadsheet(Spreadsheet&& src) noexcept; // Move constructor Spreadsheet& operator=(Spreadsheet&& rhs) noexcept; // Move... // Remaining code omitted for brevity }; 32 Spreadsheet CreateObject(){ return Spreadsheet(3, 2); } int main(){ vector vec; for (int i = 0; i < 2; ++i) { cout ... Algorithms STL Containers STL Containers STL Containers STL Containers STL Algorithms • Thuật toán thường đ c lập với container • Một số container c thuật toán riêng • Thuật toán không làm vi c tr c. .. C c yêu c u phần tử 28 Iterator • C chế chung để truy c p tới phần tử container • Mỗi container cung c p iterator x c định phù hợp với giao diện chuẩn • C thể xem iterator trỏ tới phần tử container... } 33 Iteration Normal constructor (1) Move constructor (2) Iteration Normal constructor (3) Move constructor (4) Move constructor (5) Normal constructor (6) Normal constructor (7) Move assignment

Ngày đăng: 28/03/2016, 01:09

TỪ KHÓA LIÊN QUAN