Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Thư viện C++ STL (Standard Template Library)

C++ STL (Standard Template Library) là một tập hợp mạnh mẽ các lớp mẫu (template classes) của C++ cung cấp các lớp và hàm chung mục đích với các mẫu triển khai nhiều thuật toán và cấu trúc dữ liệu phổ biến như vector, list, queue, và stack.

STL là một thư viện các lớp chứa (containers), thuật toán (algorithms), và bộ lặp (iterators). Đây là thư viện tổng quát nên các thành phần của nó được tham số hóa. Kiến thức làm việc với các lớp mẫu là điều kiện tiên quyết để làm việc với STL.

Template (mẫu) là một tính năng của ngôn ngữ C++ cho phép các hàm và lớp hoạt động với các kiểu dữ liệu chung (generic types). Điều này cho phép một hàm hoặc lớp làm việc trên nhiều kiểu dữ liệu khác nhau mà không cần viết lại cho từng kiểu.

Ba thành phần chính của STL

1. Containers (Các bộ chứa)

Containers dùng để quản lý tập hợp các đối tượng của một loại nhất định. Có nhiều loại container khác nhau như deque, list, vector, map, v.v.

  • Sequence Containers (Bộ chứa tuần tự) - Triển khai các cấu trúc dữ liệu có thể truy cập theo thứ tự tuần tự:
    • vector
    • list
    • deque
    • array
    • forward_list
  • Container Adaptors (Bộ chứa thích ứng) - Cung cấp giao diện khác cho các bộ chứa tuần tự:
    • queue
    • priority_queue
    • stack
  • Associative Containers (Bộ chứa liên kết) - Triển khai các cấu trúc dữ liệu đã sắp xếp có thể tìm kiếm nhanh (độ phức tạp O(log n)):
    • set
    • multiset
    • map
    • multimap
  • Unordered Associative Containers (Bộ chứa liên kết không có thứ tự) - Triển khai các cấu trúc dữ liệu không có thứ tự có thể tìm kiếm nhanh:
    • unordered_set
    • unordered_multiset
    • unordered_map
    • unordered_multimap

2. Algorithms (Thuật toán)

Algorithms tác động lên containers. Chúng cung cấp các phương tiện để thực hiện khởi tạo, sắp xếp, tìm kiếm và biến đổi nội dung của containers.

  • Sắp xếp (Sorting)
  • Tìm kiếm (Searching)
  • Các thuật toán STL quan trọng
  • Thuật toán mảng hữu ích
  • Phép toán phân vùng (Partition Operations)

3. Iterators (Bộ lặp)

Iterators được dùng để duyệt qua các phần tử của các tập hợp đối tượng. Các tập hợp này có thể là containers hoặc các tập con của containers.