Sắp Xếp Vector Trong C++

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

sort vector trong C++ là một hàm thành viên trong class std:algorithm, có tác dụng sắp xếp vector trong C++ theo thứ tự tăng dần hoặc giảm dần. Phép sắp xếp vector bằng hàm sort trong C++ sẽ làm thay đổi vector 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:

Copy
#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(v.begin(), v.end() );

Trong đó v là vector 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 vector, 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::sortstd, 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ể:

Copy
#include <iostream>#include <algorithm>#include <vector> using namespace std;//Tạo hàm xuất vectorvoid dump(vector<int>& v){ for (auto x: v) { cout << " "<< x ; } cout << endl;}int main(){ vector<int> data{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}; cout << "Before sort" << endl; dump (data); /*Sắp xếp vector theo thứ tự tăng dần*/ sort(data.begin(), data.end() ); cout << "After sort" << endl; dump (data); return 0;}

Kết quả:

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

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

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

std::sort(v.begin(), v.end(), std::greater<type>() );

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

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

Copy
#include <iostream>#include <algorithm>#include <vector> using namespace std;void dump(vector<int>& v){ for (auto x: v) { cout << " "<< x ; } cout << endl;}int main(){ vector<int> data{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5}; cout << "Before sort" << endl; dump (data); sort(data.begin(), data.end(), std::greater<int>() ); cout << "After sort" << endl; dump (data); return 0;}

Kết quả:

Copy
Before sort 3 1 4 1 5 9 2 6 5 3 5After 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 vector 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.

URL Link

https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/vector-trong-cpp/sap-xep-vector-trong-cpp/

Từ khóa » Cách Dùng Lệnh Sort Trong C++