इस ट्यूटोरियल में, हम जोड़े के वेक्टर का उपयोग करके किसी सरणी को उसके घटे हुए रूप में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे।
इसके लिए हमें एक सरणी प्रदान की जाएगी। हमारा काम दिए गए एरे को उसके छोटे रूप में बदलना है जैसे कि इसमें केवल 0 से लेकर n-1 तक के तत्व हों।
उदाहरण
#include <bits/stdc++.h>
using namespace std;
//converting array to its reduced form
void convert(int arr[], int n){
//creating a vector of pairs
vector <pair<int, int> > v;
//putting elements in vector
//with their indexes
for (int i = 0; i < n; i++)
v.push_back(make_pair(arr[i], i));
sort(v.begin(), v.end());
for (int i=0; i<n; i++)
arr[v[i].second] = i;
}
//printing the array
void print_array(int arr[], int n) {
for (int i=0; i<n; i++)
cout << arr[i] << " ";
}
int main(){
int arr[] = {10, 20, 15, 12, 11, 50};
int n = sizeof(arr)/sizeof(arr[0]);
cout << "Given Array is :\n";
print_array(arr, n);
convert(arr , n);
cout << "\nConverted Array:\n";
print_array(arr, n);
return 0;
} आउटपुट
Given Array : 10 20 15 12 11 50 Converted Array: 0 4 3 2 1 5