এই টিউটোরিয়ালে, আমরা ভেক্টর অফ পেয়ার ব্যবহার করে অ্যারেকে এর রিডিউসড ফর্মে কনভার্ট করার প্রোগ্রাম নিয়ে আলোচনা করব।
এই জন্য আমাদের একটি অ্যারে দেওয়া থাকবে। আমাদের কাজ হলো দেওয়া অ্যারেটিকে এর রিডিউসড ফর্মে কনভার্ট করা যাতে সেটি শুধু 0 থেকে n-1 পর্যন্ত এলিমেন্ট ধারণ করে।
C++ উদাহরণ
#include <bits/stdc++.h> using namespace std; // অ্যারেকে রিডিউসড ফর্মে কনভার্ট করা void convert(int arr[], int n){ // পেয়ারের ভেক্টর তৈরি করা vector <pair<int, int> > v; // ইনডেক্সসহ এলিমেন্ট ভেক্টরে রাখা 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; } // অ্যারে প্রিন্ট করা 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