sgc109   7년 전

JM북의 FORTRESS 라는 문제를 연습하다가

트리를 n^3 으로 만드는 makeTreeSlow 라는 함수로 먼저 짜봤고

n^2 로 만드는 makeTreeFast 라는 함수를 만드는 과정에서

Node 구조체에 반지름과 번호를 추가 한뒤 반지름으로 오름차순정렬을 한뒤 for 문으로 부모 자식 관계를 맺어주려고 했는데

vector<Node *> castles 이다보니 sort(castles.begin(),castles.end()) 를 했을때 주소값으로 오름차순정렬을 하는거 같더라구요..

@appa

h0ngjun7   7년 전

그건 어쩔 수 없는 것 같네요... 포인터로 지정하지 않고 vector 안에 vector를 선언하면 struct operator 대로 정렬될 것 같아요.

sgc109   7년 전

@appa 벡터 안에 벡터 좀더 구체적으로 설명해주실수있나요?? 어쩔수없다면 보통 이럴때는 어떻게 하나요?

h0ngjun7   7년 전

동적할당을 포인터로 하지 않고, vector로 하면 될 것 같아요.

isac322   7년 전

http://stackoverflow.com/a/1380496

링크 처럼 비교함수를 직접 만들고 포인터 값을 참조해서 비교하도록 하시면될것 같아요.

댓글을 작성하려면 로그인해야 합니다.