sort(arr.begin(), arr.end(), cmp);
여기서 cmp가
bool cmp(int a, int b) {
return a > b;
}
이런식인데
a랑 b직접 비교 말고
bool cmp(int a, int b, int arr2[]) {
return arr2[a] > arr2[b];
}
이런식으로 arr2에서의 값으로 비교하는 방법 있을까
+ 일단 arr2를 전역변수로 바꿔서 해결은 됐는데 전역변수 안쓰고는 못할까
sort(arr.begin(), arr.end(), cmp);
여기서 cmp가
bool cmp(int a, int b) {
return a > b;
}
이런식인데
a랑 b직접 비교 말고
bool cmp(int a, int b, int arr2[]) {
return arr2[a] > arr2[b];
}
이런식으로 arr2에서의 값으로 비교하는 방법 있을까
+ 일단 arr2를 전역변수로 바꿔서 해결은 됐는데 전역변수 안쓰고는 못할까
auto cmp = [&](int i, int j) { return arr2[i] > arr2[j];};
초보라 이게 이해가 안된다... ㅠ
arr2를 전역으로 두면 됨
전역 아니고는 못하려나
전역으로 안둘려면 람다 써야지뭐
함수를 전역 아닌 곳에서 만드는 방법이 위 첫 댓글처럼 람다를 쓰는 것임
ㅇㅎ ㄳㄳ