본문 바로가기

자료구조 /cpp

3 vector와 priority_queue sorting하기

1. vector

내림 차순 : sort(v.begin(), v,end(), greater<int>());

오름 차순 : sort(v.begin(), v,end());

 

2. map 

내림 차순 : 

struct cmp {

   bool operator()(int n, int m){

        return n<m;

  }

} or priority_queue<int , vector<int>, greater<int>> q;

 

오름 차순 : 

struct cmp {

   bool operator()(int n, int m){

        return n>m;

  }

or priority_queue<int , vector<int>, less<int>> q;

 

3. struct의 값을 비교할때 (priority_queue를 사용해서)

 

#include 
#include 
#include 
using namespace std;

typedef struct {
	int pos1;
	int pos2;
}pos12;


struct cmp {
	bool operator()(pos12 n, pos12 m) {
		if (n.pos1 == m.pos1) return n.pos2 < m.pos2;
		else return n.pos1 < m.pos1;
	}
};

int main(void) {
	priority_queue<pos12, vector , cmp> q;

	q.push({ 3,4 });
	q.push({ 3,5 });
	/*q.push({ 9,4 });
	q.push({ 2,4 });
	q.push({ 3,4 });
	q.push({ 4,4 });*/
	return 0;
}

 

#include 
#include 
#include 
using namespace std;


int main(void) {
int li[5] = { 5,4,2,3,1 };
int n = sizeof(li) / sizeof(int);

sort(li, li + n, less());

return 0;
} // 배열 sorting 하기.

 

list

#include 
#include 
#include 

using namespace std;


int main(void) {
list lis;
lis.push_back(3);
lis.push_front(2);

lis.sort(less<int>());

return 0;
}

'자료구조 > cpp' 카테고리의 다른 글

1 map 사용하기  (0) 2019.05.18
vector & dequeue & list  (0) 2019.04.23