मान लीजिए हमारे पास दो अलग-अलग सरणियां हैं। हमें C++ STL pair क्लास का उपयोग करके दूसरी सरणी के आधार पर एक सरणी को सॉर्ट करना है। मान लीजिए दो सरणियां 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, I]
यहां हम C++ STL के pairs का उपयोग कर रहे हैं। Pair एक तत्व A1 से और दूसरा तत्व A2 लेकर बनाया जाता है। फिर बस सॉर्टिंग फंक्शन का उपयोग करें। एक बात ध्यान में रखनी है कि pair में पहला तत्व वह सरणी बनाना चाहिए, जिसके अनुसार सॉर्टिंग की जाती है।
उदाहरण
#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