반응형

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

 

반응형

+ Recent posts