알고리즘_9_C++ STL sort() 함수 다루기 ①
Aug 8, 2021
»
writing
K 실전 알고리즘 강좌(Algorithm Programming Tutorial) 동빈나 님 수업을 참고하여 작성하였습니다
9_C++ STL sort() 함수 다루기 ①
C++ STL sort() 함수 다루기 ①
1. sort() 함수의 기본 사용법 : 오름차순 정렬 : sort(배열의 시작점 주소, 마지막 주소 +1)
1) sort() 함수
#include <iostream>
#include <algorithm>
using namespace std;
int main(void ){
int a[10] = { 9, 3, 4,5, 1, 10, 8, 6,7, 2};
sort(a, a+10);
for (int i =0; i < 10; i++) {
cout << a[i] << ' ';
}
}
// 1 2 3 4 5 6 7 8 9 10
2) compare() 함수
#include <iostream>
#include <algorithm>
using namespace std;
bool compare(int a, int b) {
return a > b; // 내림차순
return a < b; // 오름차순
}
int main(void ){
int a[10] = { 9, 3, 4,5, 1, 10, 8, 6,7, 2};
sort(a, a+10, compare);
for (int i =0; i < 10; i++) {
cout << a[i] << ' ';
}
}
// 1 2 3 4 5 6 7 8 9 10
// 10 9 8 7 6 5 4 3 2 1
3) 특정한 변수를 기준으로 정렬(데이터 묶어서 정렬)
#include <iostream>
#include <algorithm>
using namespace std;
class Student {
public :
string name;
int score;
Student(string name, int score) {
this->name = name;
this->score = score;
}
// 정렬 기준은 점수가 작은 순서
bool operator < (Student & student) {
return this->score < student.score;
}
};
int main(void) {
Student student[] = {
Student("이가은", 90),
Student("권태훈", 99),
Student("전정국", 95),
Student("김석진", 97),
Student("민윤기", 92)
};
sort(student, student + 5);
for (int i = 0; i < 5; i ++) {
cout << student[i].name << " ";
}
}
// 이가은 민윤기 전정국 김석진 권태훈