Computer >> Máy Tính >  >> Lập trình >> C ++

Thư viện mẫu chuẩn C ++ (STL)


Thư viện Mẫu Chuẩn là một thư viện phần mềm cho ngôn ngữ lập trình C ++ ảnh hưởng đến một số phần của Thư viện Chuẩn C ++. Nó cung cấp bốn thành phần được gọi là thuật toán, vùng chứa, hàm và trình vòng lặp. Lưu ý rằng thuật ngữ "STL" hoặc "Thư viện mẫu chuẩn" không hiển thị ở bất kỳ đâu trong tiêu chuẩn C ++ ISO 14882. Vì vậy, đề cập đến thư viện tiêu chuẩn C ++ là STL là sai, tức là, Thư viện tiêu chuẩn STL và C ++ là 2 thứ khác nhau với cái trước là tập hợp con của cái sau.

STL bao gồm -

Vùng chứa

STL chứa vùng chứa trình tự và vùng chứa liên kết. Các Container là các đối tượng lưu trữ dữ liệu. Các vùng chứa trình tự tiêu chuẩn bao gồm vectơ, deque và danh sách. Các vùng chứa kết hợp tiêu chuẩn được đặt, multiset, map, multimap, hash_set, hash_map, hash_multiset và hash_multimap. Ngoài ra còn có hàng đợi bộ điều hợp vùng chứa, priority_queue và ngăn xếp, là các vùng chứa có giao diện cụ thể, sử dụng các vùng chứa khác làm triển khai.

Trình lặp lại

Trình vòng lặp là một đối tượng cho phép người lập trình duyệt qua một vùng chứa. STL triển khai năm loại trình vòng lặp khác nhau:đầu vào (được sử dụng để đọc một chuỗi giá trị), đầu ra (được sử dụng để ghi một chuỗi giá trị), chuyển tiếp (có thể được đọc, ghi và di chuyển về phía trước), hai chiều (như chuyển tiếp trình vòng lặp, nhưng cũng có thể di chuyển ngược lại) và truy cập ngẫu nhiên (di chuyển tự do bất kỳ số bước nào trong một thao tác). Trình lặp là tính năng chính cho phép tính tổng quát của STL.

Thuật toán

Thuật toán trong STL là một tập hợp các hàm được thiết kế đặc biệt để sử dụng trên các dải phần tử. Dải ô là bất kỳ chuỗi đối tượng nào có thể được truy cập thông qua trình vòng lặp hoặc con trỏ, chẳng hạn như một mảng hoặc một phiên bản của một số vùng chứa STL. Ví dụ về thuật toán trong STL:sort (Sắp xếp các phần tử trong phạm vi), binary_search (Kiểm tra xem giá trị có tồn tại trong chuỗi đã sắp xếp hay không), min_element (Trả về phần tử nhỏ nhất trong phạm vi), v.v. Lưu ý rằng tất cả các thuật toán này có thể được áp dụng cho bất kỳ kiểu dữ liệu nào được chấp nhận như một mẫu.