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

Sắp xếp deque trong C++

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

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

Để sử dụng hàm sort, chúng ta cần include header file algorithm vào đầu chương trình như sau:

#include <algorithm>

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

std::sort(dq.begin(), dq.end() );

Trong đó dq là deque cần sắp xếp theo thứ tự tăng dần. Các phương thức begin() và end() được dùng để lấy index đầu tiên và cuối cùng trong deque, tương ứng với phạm vi sẽ tiến hành sắp xếp.

Lại nữa, namespace của std::sort là std, do đó chúng ta có thể khai báo namespace này để lược bỏ đi std khi viết hàm sort().

Ví dụ cụ thể:

#include <iostream>
#include <algorithm>
#include <deque>
using namespace std;

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

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

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

/*Sắp xếp deque theo thứ tự tăng dần*/
sort(dq.begin(), dq.end() );

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

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

std::sort(dq.begin(), dq.end(), std::greater() );

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

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

#include <iostream>
#include <algorithm>
#include <deque>
using namespace std;

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

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

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

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

cout << "After sort" << endl;
dump (dq);
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 deque 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.