Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी ++ में एक सरणी को कम फॉर्म (हैशिंग) में कनवर्ट करें

इस ट्यूटोरियल में, हम हैशिंग का उपयोग करके किसी ऐरे को उसके घटे हुए रूप में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे।

इसके लिए हमें एक सरणी प्रदान की जाएगी। हमारा काम दिए गए एरे को उसके छोटे रूप में बदलना है जैसे कि इसमें केवल 0 से लेकर n-1 तक के तत्व हों।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//converting array to its reduced form
void convert(int arr[], int n){
   // copying the elements of array
   int temp[n];
   memcpy(temp, arr, n*sizeof(int));
   sort(temp, temp + n);
   //creating a hash table
   unordered_map<int, int> umap;
   int val = 0;
   for (int i = 0; i < n; i++)
   umap[temp[i]] = val++;
   //putting values in the hash table
   for (int i = 0; i < n; i++)
   arr[i] = umap[arr[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 :\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

  1. C++ फ़ंक्शन में 2D सरणी पास करना

    किसी फ़ंक्शन को तर्क के रूप में Arrays को पारित किया जा सकता है। इस कार्यक्रम में, हम 2 आयामी सरणी के तत्वों को एक फ़ंक्शन में पास करके प्रदर्शित करने के लिए प्रदर्शन करेंगे। एल्गोरिदम Begin The 2D array n[][] passed to the function show(). Call function show() function, the array n (n) is tra

  1. सी ++ में एक int को स्ट्रिंग में कैसे परिवर्तित करें?

    आप एक int को स्ट्रिंग में बदलने के लिए C से itoa फ़ंक्शन का उपयोग कर सकते हैं। उदाहरण #include<iostream> int main() {    int a = 10;    char *intStr = itoa(a);    string str = string(intStr);    cout << str; } आउटपुट यह आउटपुट देगा - 10 यह पूर्ण

  1. एक सी ++ फ़ंक्शन में एक सरणी पास करना

    C++ फ़ंक्शन के तर्क के रूप में संपूर्ण सरणी को पारित करने की अनुमति नहीं देता है। हालांकि, आप किसी इंडेक्स के बिना ऐरे का नाम निर्दिष्ट करके किसी ऐरे को पॉइंटर पास कर सकते हैं। यदि आप किसी फ़ंक्शन में एक एकल-आयाम सरणी को तर्क के रूप में पास करना चाहते हैं, तो आपको निम्नलिखित तीन तरीकों में से एक मे