I. Định nghĩa về STL
STL (Standard Template Library) là một thư viện mẫu (template library) cho ngôn ngữ lập trình C++. Nó cung cấp các cấu trúc dữ liệu và thuật toán tổng quát, giúp tận dụng hiệu năng và tốc độ của ngôn ngữ C trong lập trình. Với khái niệm lập trình khái lược (generic programming) thông qua việc sử dụng template, STL cung cấp bộ thư viện chuẩn cho C++.
Để sử dụng STL, bạn cần khai báo từ khóa using namespace std;
sau các khai báo thư viện (ví dụ #include
).
Tại bài viết này mình sẽ không đi sâu vào các tính năng của thư viện STL mà chủ yếu khai thác các đặc tính cũng như cách sử dụng của hàm sort()
trong thư viện STL của C++.
II. Một số cách sử dụng hàm sort()
1. Khai báo thư viện
Để sử dụng hàm sort()
, chúng ta cần khai báo thư viện algorithm
:
2. Truy cập địa chỉ của phần tử trong mảng và vector
Các hàm thao tác trên đoạn trong thư viện <algorithm> trong C++ thường sử dụng các tham số là địa chỉ. Trong quá trình lập trình, mỗi biến được tạo ra sẽ có một địa chỉ cụ thể trong bộ nhớ. Việc sử dụng các biến địa chỉ giúp chúng ta truy cập và thao tác với giá trị của biến đó. Đối với mảng và vector, ta có cách truy cập nhanh tới địa chỉ của các phần tử như sau:
Đối với mảng:
Đối với vector:
3. Sắp xếp cơ bản
Xét mảng gồm n phần tử:
a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]
Cách dùng cơ bản nhất của hàm sort()
là sắp xếp tăng dần các phần tử từ vị trí i đến vị trí j (lưu ý ở đây ta xét mảng bắt đầu từ vị trí 0):
Ngoài ra đối với một số kiểu dữ liệu khác, như vector
, ta có thể sử dụng câu lệnh như sau:
Ví dụ tham khảo:
4. Sắp xếp theo thứ tự giảm dần
Chúng ta có thể sắp xếp các phần tử theo thứ tự giảm dần bằng cách truyền tham số comp
vào con trỏ hàm của hàm sort()
như sau: