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

Sắp xếp forward_list trong C++

Hướng dẫn cách sắp xếp forward_list trong C++. Bạn sẽ học được cách sử dụng hàm sort forward_list trong C++ để sắp xếp forward_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 forward_list tăng dần bằng hàm sort forward_list trong C++

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

Thông thường để sắp xếp các đối tượng chứa nhiều phần tử trong nó như list, map, vector thì chúng ta hay sử dụng tới template function là std::sort, tuy nhiên do forward_list là danh sách đơn nên chúng ta không thể truyền vào hàm này theo cú pháp truyền thống std::sort(first, last) được.

Thay vì đó, chúng ta sẽ sử dụng hàm thành viên sort có trong std:forward_list để tiến hành đảo ngược một forward_list trong C++.

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

f_lst.sort();

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

Ví dụ cụ thể:

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

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

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

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

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

cout << "After sort" << endl;
dump (f_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 forward_list giảm dần bằng hàm sort forward_list trong C++

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

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

Sự khác biệt duy nhất với cú pháp khi sắp xếp forward_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 forward_list.

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

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

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

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

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

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

cout << "After sort" << endl;
dump (f_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 forward_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.