我想知道为什么不能直接一个结构体,然后让b数组部分,根据a数组部分大小排序。
typedef struct {
int a;
int b; ;
}CHAR;
CHAR c[1000010];
void randomCHARGet(CHAR* ch, int len) {
for (int i = 1; i <= len; i++) {
ch[i].a = int(randomInt(32, 126));
ch[i].b = int(randomInt(32, 126));
}
}
void CHARGet(int* a, int* b, CHAR* c, int len) {
for (int i = 1; i <= len; i++) {
c[i].a = a[i];
c[i].b = b[i];
}
}
bool cmp(CHAR a, CHAR b) {
return a.a < b.a;
}
int* do_with(CHAR* ch, int len) {
sort(ch + 1, ch + len + 1, cmp);
int* Ch = new int[100010];
for (int i = 1; i <= len; i++) {
Ch[i] = ch[i].b;
}
return Ch;
}