tailieunhanh - STL lập trình khái lược trong C++ part 2

Tham khảo tài liệu 'stl lập trình khái lược trong c++ part 2', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả | 37 Chương 2. Bộ CHỨA Chương 2 Bộ CHỨA Mục đích chương này Làm quen với thư viện STL và bộ chứa Giới thiệu cách sử dụng các bộ chứa cơ sở trong STL Tỉm hiểu một số đặc trưng của các bộ chứa cơ sở trong STL Hướng dẫn cách lựa chọn bộ chứa cho chương trình Tìm hiểu và xây dựng bộ chứa từ các bộ chứa cơ sở . Giới thiệu về bộ chứa Khi xây dựng các chương trỉnh việc tồ chức lưu trữ dữ liệu là một yếu tố quan trọng. Tổ chức dữ liệu tốt không những cho phép việc truy xuất dữ liệu được thuận tiện linh hoạt mà còn có thể tối ưu chi phí tính toán của chương trình. Tuy nhiên việc tổ chức dữ liệu phù hợp là một điều không phải đơn giản. Để đưa ra một cấu trúc dữ liệu thoả mãn các yêu cầu sừ dụng cũng như các yêu cầu về không gian và thời gian tính toán đòi hỏi người lập trình có những hiểu biết nhất định cũng như kinh nghiệm lập trình. Thư viện khuôn hình chuẩn STL Standard Template Library đưa ra các lớp bộ chứa với vai trò như các cấu trúc dữ liệu được sử dụng để tồ chức lưu trữ dữ liệu cho chương trinh. Nỏ cho phép lưu trữ một tập các phần tử theo một số hình thức khác nhau như lưu trữ tuần tự lưu trữ dựa trên giá trị khoá. Sau đây một ví dụ đơn giàn để thấy sự thưận tiện khi sừ dụng bộ chứa của STL. Giả sử ta cần phải lưu trữ một tập các số nguyên. Theo cách làm quen thuộc ta khai báo như sau Sdefine max_num 100 int int_arraỵ max_numl hoặc int int_array STL - LẬP TRÌNH KHÁI Lược TRONG C 38 Với cách lưu trữ thứ nhất kích thước mảng bị giới hạn ngoài ra nỏ còn gây lãng phí bộ nhớ. Theo cách thứ hai người dùng phải tự lo việc cấp phát và giải phóng bộ nhớ mỗi khi một phần tử được thêm vào hay lấy ra khỏi mảng. Điều này không hề đơn giản bởi lẽ việc cấp phát hay giải phóng không tốt có thể gây lỗi chương trình hoặc xả rác trong bộ nhớ. Khi sử dụng các bộ chứa của STL người dùng không cần bận tâm tới điều này. Ví dụ để đạt được mục đích trên ta chỉ cần khai báo vector int int_array và sử dụng các. hàm thành phần mà lớp vector cung cấp để truy nhập bổ sung hay xoá đi một phần