좌표 벡터를 정렬하려고합니다. 벡터에는 이러한 좌표에 대한 포인터가 있습니다. 나는 그들을 x와 y로 정렬하고 싶다. 현재이 작업을 수행하는 방법은 다음과 같이 벡터의 두 복사본을 만든 다음 정렬하는 것입니다. 다음 두 가지에 대해 확신이 없습니다. 1) 포인터의 벡터 사본을 만드는 방법 2) 벡터에서 두 점을 모두 x와 y로 정렬하고 다음과 같이 올바르게 정렬되는지 확인하십시오 (1 , 4), (1,5)좌표 벡터 정렬 C++
나는 내장 함수가 있는지 알아 내려고했지만, 예를 들어 정렬 함수이 올바르게 x와 y를 순서대로 정렬하면 확실하지 않습니다. .
여기까지 내가 지금까지 가지고있는 도움이 감사하겠습니다. = {- {(2,4), (1,3), (1,7), (4,4)} 및 Y
typedef struct{double x; double y;) pt;
vector<pt*>v1;
vector<pt*>*v2 = v1;
// allocate memory for the points and push_back on the vector
the vector would have the following points {(1,7),(4,4),(1,3),(-2,4)}
X 대를 정렬 할 때, X = 것 (1,3), (- 2,4), (4,4), (1,7)}
UPDATE :이 단계에서 현재 오전하지만 여전히 작동하지 않습니다
... :(
bool compare(pt* m1, pt* m2){return(m1->x <= m2->x) && (m1->y <= m2->y);}
vector<pt*>v1_x = v1;
sort(v1_x.begin(), v1_x.end(), comparer);
정말 그렇게 간단합니까? – Masterminder
@ Masterminder : 모든 소유권 의미를 올바르게 얻는 모듈체. –
그래서 일단 벡터의 복사본을 만들면 타이 부분을 지정하면 정렬이 나를 대신 할 것입니다. 마찬가지로 그것은 실제로 포인터를 재정렬 할 것인가? – Masterminder