반응형
Pair
bool cmp 함수가 가장 중요하다.
bool cmp(pair<int, int> a, pair<int, int> b)
{
if (a.first < b.first)
return true;
else if (a.first == b.first)
{
if (a.second < b.second)
{
return true;
}
}
return false;
}
- true이면 조건문그대로 정렬 하는 것
- false이면 swap 해주는 것
- 위의 조건문은 first기준 오름차순이며 같을 경우 second 값을 오름차순으로 결정한다..
v.push_back({ 1,3 });
v.push_back({ 1,4 });
v.push_back({ 10,3 });
v.push_back({ 12,3 });
v.push_back({ 14,3 });
v.push_back({ 14,2 });
sort(v.begin(), v.end(), cmp);
Struct
if(a.z>b.z) 면 true라는 것은 내림차순 정렬이다.! a.z>b.z가 큰 것이 맞다!
using namespace std;
struct abc
{
int x;
int y;
int z;
};
bool cmp(abc a, abc b)
{
if (a.z > b.z)
return true;
else
return false;
}
int main()
{
vector<abc> v;
v.push_back({ 1,2,1 });
v.push_back({ 1,2,2 });
v.push_back({ 1,2,3 });
v.push_back({ 1,2,4 });
//1,2,4->1,2,3->1,2,2->1,2,1로 정렬해라
sort(v.begin(), v.end(), cmp);
return 0;
}
반응형
'Algorithm > Algorithm_Tip' 카테고리의 다른 글
[형변환 정리] String<->char , char<->int, int<->String (0) | 2020.10.24 |
---|---|
[최소힙, 최대힙] priority_queue (0) | 2020.10.21 |
[Tip] 문자열 짜르기 (0) | 2020.09.17 |
[C++] 대문자 <-> 소문자 변경 (0) | 2020.09.16 |
[강의] 투포인트 알고리즘 (0) | 2020.09.12 |