관리 메뉴

개발 노트

9. C++ STL sort() 함수 다루기(1) 본문

알고리즘 공부 : 24.01.18~/2. 알고리즘 심화 정렬

9. C++ STL sort() 함수 다루기(1)

hayoung.dev 2024. 2. 2. 02:26

정렬 라이브러리가 있기 때문에 정렬 문제에서 굳이 코드를 만들 필요 없이 정렬 라이브러리를 쓰면 된다.

 

c++에서 다양한 stl 라이브러리를 제공하기 때문에 c++를 사용한다.

 

#include <iostream>
#include <algorithm>

using namespace std;

//비교함수
bool compare(int a, int b) {
	return a < b;	//오름차순, a>b이면 내림차순 정렬이 됨.
} 

int main(void) {
	int a[10] = {9, 3, 5, 4, 1, 10, 8, 6, 7, 2};
    //정렬할 기준을 직접 설정.
    //두 번째에는 a+10처럼 변수의 개수를 더한 값을 작성
    //세 번째에 직접 만든 함수를 집어넣으면, 해당 함수의 반환값에 맞게 정렬 동작
	sort(a, a + 10, compare);
	for(int i = 0; i < 10; i++) {
		cout << a[i] << ' ';
	}
}

 

출력 결과

 

 

점수를 기준으로 학생을 정렬해서 이름 출력하기

#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;
	}
};

bool compare(int a, int b) {
	return a > b;
} 

int main(void) {
	Student students[] = {
		Student("나동빈", 90),
		Student("이상욱", 93),
		Student("박한울", 97),
		Student("강종구", 87),
		Student("이태일", 92)
	};
	sort(students, students + 5);
	for(int i = 0; i < 5; i++) {
		cout << students[i].name << ' ';
	}
}

 

출력 결과

 

 

출처: https://blog.naver.com/ndb796/221227975229

반응형