C 스타일의 배열만 주로 사용하다가..C++ 스타일의 벡터를 좀 익혀보려고 하고 있는데요..
vector< vector > 나 vector< struct Point > 같은
벡터내의 벡터나, 벡터내의 구조체를 갖는 구조를 sort 함수로 어떻게 정렬하나요 ?
몇가지 해봤는데... 컴파일은 되는데, 탑코더에서 세그멘테이션 폴트가 나네요.
int maxLength;
struct Point {
vector x; // 다 같은 크기로 사용할 겁니다. int* x 로 선언해서 x = new int[10]; 이런식으로도 해봤는데 안되네요
int c;
};
// vector x 를 순서대로 보면서 작은 인덱스가 크면 true 를 리턴하는 비교함수입니다.
inline bool comp(const Point& p1, const Point& p2) {
f(i,0,maxLength) {
if(p1.x[i] > p2.x[i])
return true;
else if(p1.x[i] < p2.x[i])
return false;
}
return true;
}
class A {
public:
string B(vector numbers, int k) {
string rr="";
maxLength = 무언가 어싸인;
vector< Point > p;
f(i,0,36) {
Point t;
t.x.resize(maxLength);
t.c = i;
p.push_back(t);
}
f(i,0,36)
f(j,0,maxLength)
p[i].x[j] = 0;
sort(p.begin(), p.end(), comp);
return rr;
}
};
sort 함수를 하지 않으면 결과가 원하던대로 잘 나오는데요.
sort 함수만 콜 하면 세그멘테이션 폴트가 나네요.
구조체 내에 동적메모리 할당이 없는 경우에는 문제가 없는거 같은데요,
vector 나 안에 동적배열 변수를 넣게되면 sort 함수의 비교연산자를 다르게 선언해야 하나요 ?
룡이
C 스타일의 배열만 주로 사용하다가..C++ 스타일의 벡터를 좀 익혀보려고 하고 있는데요.. > 나 vector< struct Point > 같은 x; // 다 같은 크기로 사용할 겁니다. int* x 로 선언해서 x = new int[10]; 이런식으로도 해봤는데 안되네요 numbers, int k) {
vector< vector
벡터내의 벡터나, 벡터내의 구조체를 갖는 구조를 sort 함수로 어떻게 정렬하나요 ?
몇가지 해봤는데... 컴파일은 되는데, 탑코더에서 세그멘테이션 폴트가 나네요.
int maxLength;
struct Point {
vector
int c;
};
// vector x 를 순서대로 보면서 작은 인덱스가 크면 true 를 리턴하는 비교함수입니다.
inline bool comp(const Point& p1, const Point& p2) {
f(i,0,maxLength) {
if(p1.x[i] > p2.x[i])
return true;
else if(p1.x[i] < p2.x[i])
return false;
}
return true;
}
class A {
public:
string B(vector
string rr="";
maxLength = 무언가 어싸인;
vector< Point > p;
f(i,0,36) {
Point t;
t.x.resize(maxLength);
t.c = i;
p.push_back(t);
}
f(i,0,36)
f(j,0,maxLength)
p[i].x[j] = 0;
sort(p.begin(), p.end(), comp);
return rr;
}
};
sort 함수를 하지 않으면 결과가 원하던대로 잘 나오는데요.
sort 함수만 콜 하면 세그멘테이션 폴트가 나네요.
구조체 내에 동적메모리 할당이 없는 경우에는 문제가 없는거 같은데요,
vector 나 안에 동적배열 변수를 넣게되면 sort 함수의 비교연산자를 다르게 선언해야 하나요 ?
15년 전