알파카징징이 알파카징징이 코딩하는 알파카

알고리즘_9_C++ STL sort() 함수 다루기 ②

» writing

K 실전 알고리즘 강좌(Algorithm Programming Tutorial) 동빈나 님 수업을 참고하여 작성하였습니다

9_C++ STL sort() 함수 다루기 ②

정의


C++ STL sort() 함수 다루기 ②

1. sort() 함수의 기본 사용법
	: 빠른 개발이 필요할 때는 페어(Pair) 라이브러리 사용

1) vector 와 페어 이용(숏코딩)

	- vecotr : 단순한 배열을 보다 사용하기 쉽게 개편한 자료주고
	- pair : 한 쌍의 데이터를 처리할 수 있게함
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main(void) {
	vector<pair<int, string> >v;
	v.push_back(pair<int, string>(90, "이가은"));
	v.push_back(pair<int, string>(88, "권태훈"));
	v.push_back(pair<int, string>(96, "전정국"));
	v.push_back(pair<int, string>(94, "김남준"));
	v.push_back(pair<int, string>(67, "김태형")); 
	
	sort(v.begin(), v.end());
	for (int i = 0; i< v.size(); i++) {
		cout << v[i].second << " ";
	}
	return 0;
}

// 김태형 권태훈 이가은 김남준 전정국

1) \이름, 성적, 생년월일 주어질 때 성적 동일할 경우 나이가 더어린 학생이 순위 더높음

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool compare (pair<string, pair<int, int> > a,
			  pair<string, pair<int, int> > b) {
	if (a.second.first == b.second.first) {
		return a.second.second > b.second.second;
	} else {
		return a.second.first > b.second.first;
	}
}

int main(void) {
	vector<pair<string, pair<int, int> > >v;
	v.push_back(pair<string, pair<int, int> >("이가은", pair<int, int>(90, 20000325)));
	v.push_back(pair<string, pair<int, int> >("권태훈", pair<int, int>(96, 19951116)));
	v.push_back(pair<string, pair<int, int> >("전정국", pair<int, int>(96, 19970901)));
	v.push_back(pair<string, pair<int, int> >("김남준", pair<int, int>(94, 19940912)));
	v.push_back(pair<string, pair<int, int> >("김태형", pair<int, int>(92, 19951230)));
	
	sort(v.begin(), v.end(), compare);
	for (int i = 0; i< v.size(); i++) {
		cout << v[i].first << " ";
	}
	return 0;
}

// 전정국 권태훈 김남준 김태형 이가은