สมมติว่าเรามีอาร์เรย์ที่แตกต่างกันสองชุด เราต้องจัดเรียงหนึ่งอาร์เรย์ตามอาร์เรย์อื่นโดยใช้คลาสคู่ C ++ STL พิจารณาสองอาร์เรย์เช่น A1 =[2, 1, 5, 4, 9, 3, 6, 7, 10, 8] และอาร์เรย์อื่นเช่น A2 =[A, B, C, D, E, F, G , H, I, J], ผลลัพธ์ที่ได้จะเป็นดังนี้:A1 =[1, 2, 3, 4, 5, 6, 7, 8, 9, 10], A2 =[B, A, F, D, C , G, H, J, E, ฉัน]
ที่นี่เราใช้คู่ของ C ++ STL คู่นี้เกิดจากการนำองค์ประกอบหนึ่งจาก A1 อีกองค์ประกอบจาก A2 จากนั้นใช้ฟังก์ชันการเรียงลำดับ สิ่งหนึ่งที่เราได้พิจารณาแล้วว่าองค์ประกอบแรกในคู่ควรสร้างอาร์เรย์ตามการเรียงลำดับ
ตัวอย่าง
#include <iostream> #include <algorithm> #include <map> using namespace std; template <class T> void display(T arr[], int n) { for (int i = 0; i < n; i++) cout << arr[i] << " "; } void sortUsingSecondArr(int A1[], char A2[], int n){ pair<int, char> pair_arr[n]; for (int i = 0; i < n; i++) { pair_arr[i].first = A1[i]; pair_arr[i].second = A2[i]; } sort(pair_arr, pair_arr + n); for (int i = 0; i < n; i++) { A1[i] = pair_arr[i].first; A2[i] = pair_arr[i].second; } } int main() { int n = 10; int A1[] = {2, 1, 5, 4, 9, 3, 6, 7, 10, 8}; char A2[] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}; cout << "Before Sorting: "<<endl; cout << "First Array : "; display(A1, n); cout << "\nSecond Array: "; display(A2, n); sortUsingSecondArr(A1, A2, n); cout << "\n\nAfter Sorting: "<<endl; cout << "First Array : "; display(A1, n); cout << "\nSecond Array: "; display(A2, n); }
ผลลัพธ์
Before Sorting: First Array : 2 1 5 4 9 3 6 7 10 8 Second Array: A B C D E F G H I J After Sorting: First Array : 1 2 3 4 5 6 7 8 9 10 Second Array: B A F D C G H J E I