Trong C++, thư viện chuẩn (hay còn gọi là thư viện tiêu chuẩn) là một bộ sưu tập các lớp và hàm được xây dựng trong ngôn ngữ cơ bản. Thư viện này cung cấp các cấu trúc dữ liệu tổng quát, các hàm tiện ích cho các thao tác với dữ liệu, các đối tượng hàm, dãy ký tự và dòng dữ liệu (bao gồm cả I/O tương tác và tập tin), hỗ trợ nhiều tính năng của ngôn ngữ và các hàm tính toán như căn bậc hai. Thư viện chuẩn C++ cũng bao gồm thư viện chuẩn C, và hầu hết các chức năng của thư viện này đều được khai báo trong không gian tên std.
Các tệp tiêu đề chuẩn
Những tệp sau đây chứa các khai báo và mô tả chung của thư viện chuẩn:
Các thư viện phổ biến
- <bitset> -- Định nghĩa lớp tiêu bản <code>bitset</code> và các hàm hỗ trợ việc hiển thị và thao tác với các chuỗi bit có độ dài cố định.
<deque> -- Cung cấp lớp tiêu bản <code>deque</code> (hàng đợi) và các chức năng hỗ trợ khác.
- <list> -- Định nghĩa lớp tiêu bản <code>list</code> (danh sách liên kết) và các hàm hỗ trợ đa dạng.
<map> -- Định nghĩa lớp tiêu bản <code>map</code> và <multimap>, kèm theo nhiều hàm hỗ trợ.
- <queue> -- Cung cấp các lớp tiêu bản <code>priority_queue</code> và <code>queue</code> cùng các chức năng hỗ trợ khác.
Streams và các thao tác nhập/xuất
- <fstream> -- Cung cấp các lớp để thực hiện các thao tác xuất nhập dữ liệu qua các tệp tin bên ngoài trong C++. <ios> -- Định nghĩa các kiểu và hàm cơ bản hỗ trợ xử lý dòng dữ liệu. Thư viện này thường bao gồm các thư viện dòng khác mà ít khi được khai báo trực tiếp qua lệnh <code>#include</code>.
<iostream> -- Định nghĩa các đối tượng để xuất và nhập dữ liệu với các dòng tiêu chuẩn (standard streams), thường là thư viện duy nhất cần khai báo để thực hiện các thao tác nhập/xuất trong C++.
- <iosfwd> -- Khai báo các tham chiếu cần thiết cho các lớp dòng xuất nhập mà không cần định nghĩa chi tiết. Chỉ dùng khi cần một tham chiếu mà không phải là định nghĩa.
<iomanip> -- Định nghĩa các thao tác điều chỉnh dòng, có thể nhận các đối số để thực hiện các thay đổi cho dòng dữ liệu.
- <exception> -- Cung cấp các kiểu và hàm để xử lý ngoại lệ, giúp chương trình phục hồi sau các lỗi không lường trước được, đồng thời trả lại quyền điều khiển cho chương trình khi gặp sự cố.
<limits> -- Định nghĩa lớp <code>numeric_limits</code> để xử lý các vấn đề liên quan đến độ chính xác và phạm vi giá trị của các kiểu dữ liệu số, bao gồm việc làm tròn và thứ tự của các điểm động.
<new> -- Định nghĩa các kiểu và hàm để điều khiển việc cấp phát và giải phóng bộ nhớ, bao gồm các thành phần hỗ trợ báo cáo quản lý bộ nhớ trong chương trình.
- <typeinfo> -- Cung cấp các công cụ hỗ trợ nhận diện kiểu dữ liệu động trong chương trình.
- Thư viện chuẩn C++ là các thư viện chuẩn từ C, được chuyển đổi tên từ <xxxx.h> thành <cxxxx>, trong đó "xxxx" là tên thư viện tương ứng (xem thêm Thư viện chuẩn C để biết chi tiết về các thư viện này).