[STL] Giới thiệu về Standard Template Library( STL)

Standard Template Library (STL)

Khi học lập trình C++ một phần mà chúng ta không thể không nhắc tới đó là Standard Template Library (STL). Để tìm hiều về STL có gì hay ho chúng ta cùng xem xét ví dụ dưới đây.


#include <iostream>

#include <list>

using namespace std;

int main()

{

   //Dinh nghia list co 5 phan tu
   //Moi phan tu co gia tri = 100
   list<int> testList(5, 100);

   //Duyet tat ca cac phan tu cua list
   for (list<int> ::iterator it = testList.begin(); it != testList.end(); it++)

   {

      cout << *it << endl;

   }

   return 0;

}

Theo ví dụ trên thay vì ta phải viết code để cài đặt cấu trúc dữ liệu linked list, thì ta có thể sử dụng ngay list được định nghĩa trong header <list> của STL. Thật tiện lợi phải không?

Vậy STL là gì?

STL là 1 thư viện trong ngôn ngữ C++, nó là 1 phần của C++ Standard Library, bao gồm 1 tập hợp các class được xây dựng sẵn, cung cấp khuôn mẫu về tổ chức dữ liệu, thuật toán, bộ lặp.

Các class trong STL đều được định nghĩa ở dạng tổng quát (generic) với từ khóa template. Ta có thể sử dụng các class đó với tất cả các kiểu dữ liệu, từ kiểu dữ liệu nguyên thủy đến kiếu dữ liệu người dùng định nghĩa.

Các thành phần của STL

Containers

Chứa các class về cấu trúc dữ liệu.

Các containers bao gồm:

  • Sequence containers : arrayvector, deque, list.
  • Associative containers : set, multiset, map, multimap, hash_set, hash_map, hash_multiset, hash_multimap.
  • Container adaptors : queue, priority_queue, stack.

Algorithms

Cung cấp các thuật toán trên các containers như tìm kiếm (searching), sắp xếp (sorting)…

Iterators

Được sử dụng để truy cập, duyệt qua các phần tử của các containers.

Kết luận

STL là bộ thư viện khá mạnh được cài đặt sẵn trong C++. Việc thông thạo sử dụng STL sẽ giúp cho các lập trình viên tiết kiệm thời gian để giải quyết bài toán.

Trong khuôn khổ bài viết này mình chỉ giới thiệu sơ qua về STL. Chúng ta sẽ cùng tìm hiểu chi tiết về cách sử dụng các thành phần của STL trong các bài viết tiếp theo.

Was this article helpful?

Leave A Comment?