การจัดเรียง Vector เรียงจากมากไปน้อย (Sort Vector in Descending Order) ด้วย STL
ใช้ std::sort จาก <algorithm> พร้อม comparator std::greater<T>()
ตัวอย่าง
#include <bits/stdc++.h>
using namespace std;
int main() {
vector<int> a = { 1, 45, 54, 71, 76, 12 };
cout << "Vector: ";
for (int i = 0; i < a.size(); i++) cout << a[i] << " ";
cout << endl;
// เรียงจากมากไปน้อย
sort(a.begin(), a.end(), greater<int>());
cout << "Sorted Vector in descending order: ";
for (int i = 0; i < a.size(); i++) cout << a[i] << " ";
cout << endl;
return 0;
}
ผลลัพธ์
Vector: 1 45 54 71 76 12 Sorted Vector in descending order: 76 71 54 45 12 1
คำอธิบาย
sort(begin, end)เรียงน้อยไปมาก (default ใช้operator<)sort(begin, end, greater<int>())เรียงมากไปน้อยgreater<T>เป็น functor ที่ทำa > b- หรือใช้ lambda:
sort(a.begin(), a.end(), [](int a, int b){ return a > b; });
ประเภทข้อมูลอื่นๆ
- ทำงานกับ built-in types (int, double, char, ฯลฯ)
- ทำงานกับ custom types ที่มี
operator>หรือให้ comparator เอง