vấn đề của tôi là tiếp theo (là một ví dụ đơn giản để hiển thị các vấn đề):Sắp xếp một mảng dựa trên các thành viên của mảng khác trong C++
tôi có:
int* array1;
double* array2.
array1=new int[10];
array2=new double[10];
array1=filledWithIntegers(random);
array2=filledWithDoubles(random);
// Ở đây tôi muốn sắp xếp mảng1 dựa trên giá trị mảng2. Tôi đang cố gắng sử dụng chức năng qsort của stdlib. qsort (mảng1,6, sizeof (int), so sánh);
Điểm chính là cách thực hiện hàm so sánh cho mảng thứ tự1 dựa trên mảng2.
Không thể sử dụng cấu trúc dữ liệu thư viện std, nó phải được thực hiện trực tiếp trong các con trỏ mảng.
Cảm ơn.
Hầu như. 'compare' sẽ trả về' -1' (thay vì '0') khi nhỏ hơn. – user2k5
@ user2k5 Bạn nói đúng - tôi đã thay đổi chức năng để sử dụng mẹo đăng nhập từ [câu trả lời này] (http://stackoverflow.com/a/4609795/335858). – dasblinkenlight
Không cần thêm mảng hoán vị, chỉ tính các vị trí 'a' và' b' bên trong 'mảng1'. Tuy nhiên, bộ so sánh đã phải biết 'mảng2'. –