Thư viện chuẩn C++

Trong C++, **Thư viện chuẩn** hay **Thư viện tiêu chuẩn** là một tập hợp của các lớp và các hàm được viết trong phần ngôn ngữ cốt lõi. Thư viện chuẩn này cung cấp nhiều thùng chứa tổng quát, các hàm để làm tiện ích và điều chỉnh cho các thùng chứa, các đối tượng hàm, các dãy ký tự tổng quát và các dòng dữ liệu (bao gồm I/O tương tác và tập tin), hỗ trợ một số tính năng ngôn ngữ, và nhiều hàm thông dụng cho các thao tác như là tìm căn bậc hai. Chuẩn C++ cũng bao gồm cả Thư viện chuẩn C. Nhiều chức năng của thư viện chuẩn C++ là các khai báo trong không gian tên *std*.

## Các tập tin tiêu đề chuẩn
Các tập tin sau đây chứa các khai báo của Thư viện chuẩn và miêu tả chung của chúng:

### Các Container
*  -- Định nghĩa lớp tiêu bản `bitset` và các hàm hỗ trợ cho việc hiển thị và điều chỉnh các dãy bit có độ dài cố định.
*  -- Định nghĩa lớp tiêu bản `deque` (hàng) và nhiều tiêu bản hỗ trợ.
*  -- Định nghĩa lớp tiêu bản `list` (danh sách) và nhiều tiêu bản hỗ trợ.
*  -- Định nghĩa lớp tiêu bản `map` và  và nhiều tiêu bản hỗ trợ.
*  -- Định nghĩa các lớp tiêu bản ` priority_queue` và `queue` cùng với nhiều tiêu bản hỗ trợ.
*  -- Định nghĩa lớp tiêu bản `set` và nhiều tiêu bản hỗ trợ.
*  -- Định nghĩa lớp tiêu bản `stack` (chồng) và các tiêu bản hỗ trợ.
*  -- Định nghĩa lớp tiêu bản `vector` và nhiều tiêu bản hỗ trợ.

### Tổng quát
*  -- Định nghĩa nhiều hàm thực thi các thuật toán về thùng chứa trong Thư viện tiêu bản chuẩn `STL`.
*  -- Định nghĩa các hàm nhằm giúp cho việc xây dựng các đối tượng hàm trong Thư viện tiêu bản chuẩn ` (còn có tên là ''hàm tử'').`
*  -- Định nghĩa các biến lặp cơ bản, định nghĩa sẵn các biến lặp, biến lặp dòng, cũng như là các tiêu bản hỗ trợ.
*  -- Định nghĩa các lớp tiêu bản và các hàm mà chương trình C++ có thể dùng để tạo đặc tính đóng và điều chỉnh các yếu tố định dạng và biểu thị của các số, tiền tệ, dữ liệu về ngày tháng bao gồm hỗ trợ ngôn ngữ quốc tế cho sự phân lớp ký tự và sự sắp xếp dãy ký tự.
*  -- Định nghĩa một lớp, một toán tử và nhiều tiêu bản nhằm giúp cấp phát và trả về (vùng nhớ) của các đối tượng.
*  -- Định nghĩa nhiều lớp chuẩn dùng cho việc báo cáo các ngoại lệ. Các lớp tạo nên một hệ phân nhánh mà tất cả đều dẫn xuất từ lớp `exception` và bao gồm hai kiểu ngoại lệ thông dụng: lỗi lô-gíc và lỗi trong thời gian thi hành.
*  -- Định nghĩa các kiểu, hàm, và toán tử trong Thư viện tiêu bản chuẩn `STL` nhằm giúp cho việc xây dựng và quản lý các cặp đối tưọng. Nó hữu dụng, khi hai đối tượng cần được hành xử như chúng là một.

### Các dãy ký tự
*  -- Định nghĩa thùng chứa lớp tiêu bản `basic_string` và nhiều hỗ trợ cho các tiêu bản.khung

### Streams và Input/Output
*  -- Định nghĩa các lớp hỗ trợ các phép toán cho dòng xuất nhập (*iostream*) trên các chuỗi chứa trong các tập tin bên ngoài.
*  -- Định nghĩa nhiều kiểu và hàm cơ bản cho các xử lý của các dòng xuất nhập. Tiêu đề này thưòng bao gồm nhiều tiêu đề dòng xuất nhập khác mà ít khi được khai báo qua lệnh `#include` trực tiếp.
*  -- Định nghĩa các đối tượng để đọc và viết ra các dòng tiêu chuẩn (*standard stream*). Đây thường là tiêu đề duy nhất cần phải bao gồm để tiến hành xuất và nhập (dữ liệu) từ C++.
*  -- Khai báo trước các tham chiếu cho nhiều tiêu bản để dùng suốt quá trình xuất nhập dòng. Tấr cả các tiêu bản như vậy được định nghĩa trong các tập tin tiêu đề chuẩn khác. Chỉ sử dụng tập tin tiêu đề này khi cần có một trong số các khai báo của nó, nhưng không phải là định nghĩa của nó.
*  -- Định nghĩa nhiều phép điều chỉnh mà nó lấy vào một đối số.
*  -- Định nghĩa lớp tiêu bản `basic_istream`, tiêu bản này làm trung gian cho các sự chèn vào và lấy ra (dữ liệu). Tiêu đề cũng định nghĩa một bộ điều chỉnh. Tập tin tiêu đề này thường được sử dụng bởi các tiêu đề về dòng xuất nhập khác, nó hiếm khi được bao gồm trực tiếp trong mã nguồn của người lập trình.
*  -- Định nghĩa lớp tiêu bản `basic_ostream`, tiêu bản này làm trung gian cho các sự chèn (dữ liệu) vào cho các dòng xuất nhập. Tiêu đề cũng định nghĩa một bộ điều chỉnh. Tập tin tiêu đề này thường được sử dụng bởi các tiêu đề về dòng xuất nhập khác, nó hiếm khi được bao gồm trực tiếp trong mã nguồn của người lập trình.
*  -- Định nghĩa nhiều lớp tiêu bản mà nó hỗ trợ các phép toán của dòng xuất nhập trên các chuỗi (dữ liệu) chứa trong một đối tượng mảng đã dược cấp phát vùng nhớ. Những chuỗi này rất dễ chuyển đổi để tạo thành các đối tượng của lớp tiêu bản basic_string.
*  -- Bao gồm tiêu đề chuẩn cho các dòng xuất nhập của `<streambuf>` dùng để định nghĩa lớp tiêu bản `basic_streambuf`. Lớp này là cơ sở cho phép toán của các lớp của dòng xuất nhập. Tiều đề này thường được bao gồm sẵn trong các tiêu bản về dòng xuất nhập khác, nó hiếm khi được bao gồm trực tiếp trong mã nguồn của người lập trình.

### Các số
*  -- Định nghĩa lớp tiêu bản `complex` và hỗ trợ nhiều tiêu bản.
*  -- Định nghĩa các hàm tiêu bản thùng chứa nhằm tiến hành các thuật toán cung cấp cho việc xử lý số.
*  -- Định nghĩa lớp tiêu bản `valarray` hỗ trợ các lớp tiêu bản và các hàm.

### Hỗ trợ ngôn ngữ lập trình
*  --Định nghĩa nhiều kiểu và hàm liên hệ tới việc xử lý các ngoại lệ. Việc xử lý ngoại lệ được dùng trong tình huống mà máy tính có thể phục hồi từ các lỗi. Nó cung ứng ý nghĩa cho việc trả về quyền điều khiển cho chương trình.
*  --Định nghĩa các lớp tiêu bản `numeric_limits` và lo về việc biểu thị thứ tự của các điểm động và việc làm tròn.
*  -- Định nghĩa nhiều kiểu và hàm mà nó điều khiển việc cấp phát cũng như trả về (bộ nhớ) của kho dự trữ dưới sự kiểm soát của chương trình. Nó cũng định nghĩa các thành phần cho việc báo cáo về quản lý của kho dự trữ.
*  -- Hỗ trợ cho nhận dạng kiểu động.

### Thư viện chuẩn C++
Thư viện này chính là Thư viện chuẩn C được du nhập lại và đổi tên từ dạng  thành  trong đó "xxxx" là tên của thư viện (xem thêm Thư viện chuẩn C về miêu tả của các thư viện này).
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 

## Tham khảo

* Bjarne Stroustrup: *The C++ Programming Language*, Addison-Wesley, ISBN 0-201-70073-5