Sắp xếp list trong C++ | Laptrinhcanban.com

Sắp xếp list trong C++

Hướng dẫn cách sắp xếp list trong C++. Bạn sẽ học được cách sử dụng hàm sort list trong C++ để sắp xếp list theo thứ tự tăng dần và giảm dần trong C++ sau bài học này.

Sắp xếp list tăng dần bằng hàm sort list trong C++

sort list trong C++ là một hàm thành viên trong class std:list, có tác dụng sắp xếp list trong C++ theo thứ tự tăng dần hoặc giảm dần. Phép sắp xếp list bằng hàm sort trong C++ sẽ làm thay đổi list ban đầu.

Khác với hàm sort sử dụng trong vector hay map thì hàm sort list không phải là hàm thành viên của std::sort mà là hàm thành viên của chính std::list, do vậy chúng ta chỉ cần import header list vào chương trình là có thể sử dụng được hàm này rồi.

Cú pháp sử dụng hàm sort để sắp xếp list trong C++ theo thứ tự tăng dần như sau:

lst.sort();

Trong đó lst là list cần sắp xếp theo thứ tự tăng dần.

Ví dụ cụ thể:

#include <iostream>
#include <list>
using namespace std;

//Tạo hàm xuất list
void dump(list<int>& v)
{
for (auto x: v) {
cout << " "<< x ;
}
cout << endl;
}

int main()
{
list<int> lst{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};

cout << "Before sort" << endl;
dump (lst);

/*Sắp xếp list theo thứ tự tăng dần*/
lst.sort();

cout << "After sort" << endl;
dump (lst);
return 0;
}

Kết quả:

Before sort
3 1 4 1 5 9 2 6 5 3 5
After sort
1 1 2 3 3 4 5 5 5 6 9

Sắp xếp list giảm dần bằng hàm sort list trong C++

Để sắp xếp list giảm dần, chúng ta sử dụng hàm sort list trong C++ với cú pháp sau đây:

lst.sort( std::greater<type>() );

Trong đó lst là list cần sắp xếp theo thứ tự giảm dần, và type là kiểu dữ liệu chứa trong list.

Sự khác biệt duy nhất với cú pháp khi sắp xếp list theo thứ tự tăng dần bằng hàm sort đó là đối số std::greater<type> có tác dụng chuyển từ sắp xếp tăng dần thành giảm dần, trong đó type là kiểu dữ liệu sử dụng trong list.

Ví dụ cụ thể, chúng ta sắp xếp giảm dần list ở trên như sau:

#include <iostream>
#include <list>
using namespace std;

//Tạo hàm xuất list
void dump(list<int>& lst)
{
for (auto x: lst) {
cout << " "<< x ;
}
cout << endl;
}

int main()
{
list<int> lst{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5};

cout << "Before sort" << endl;
dump (lst);

/*Sắp xếp list theo thứ tự giảm dần*/
lst.sort( std::greater<int>() );

cout << "After sort" << endl;
dump (lst);
return 0;
}

Kết quả:

Before sort
3 1 4 1 5 9 2 6 5 3 5
After sort
9 6 5 5 5 4 3 3 2 1 1

Lưu ý đối với vetor có các phần tử được tạo bởi các kiểu tham chiếu như class hay struct thì chúng ta cần dùng phương pháp khác mới có thể sắp xếp được chúng.

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách sắp xếp list trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học sinh tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2017, Kiyoshi hiện đang làm BrSE tại Tokyo, Nhật Bản.