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

सी ++ में किसी अन्य स्ट्रिंग द्वारा परिभाषित वर्णानुक्रम के अनुसार स्ट्रिंग्स की सरणी को क्रमबद्ध करें

मान लीजिए कि हमारे पास स्ट्रिंग्स की एक सरणी है, और संदर्भ के लिए एक और स्ट्रिंग है। हमें संदर्भ स्ट्रिंग लेनी है और संदर्भ स्ट्रिंग में वर्णों के क्रम का उपयोग करके हम स्ट्रिंग सरणी को सॉर्ट करेंगे। यहां हम सरणी में स्ट्रिंग्स पर विचार कर रहे हैं, और संदर्भ स्ट्रिंग लोअर केस अक्षरों में है।

मान लीजिए कि स्ट्रिंग सरणी इस प्रकार है:["हैलो", "प्रोग्रामिंग", "विज्ञान", "कंप्यूटर", "इंडिया"], संदर्भ स्ट्रिंग इस प्रकार है:"पिगवक्सब्स्कीहक्ज़ेलुटोएकफजर्नडीएमडब्ल्यू", आउटपुट स्ट्रिंग को सॉर्ट करने के बाद ["प्रोग्रामिंग" जैसा होगा "", "भारत", "विज्ञान", "हैलो", "कंप्यूटर"]

कार्य सरल है। हमें संदर्भ स्ट्रिंग को पार करना होगा, फिर चरित्र को मानचित्र में कुंजी के रूप में और अनुक्रमणिका को मान के रूप में संग्रहीत करना होगा। अब स्ट्रिंग को सॉर्ट करने के लिए, हमें उस मैप के आधार पर स्ट्रिंग्स की तुलना करनी होगी, न कि ASCII कैरेक्टर ऑर्डरिंग। मानचित्र में उन विशेष वर्णों के लिए मैप किए गए मानों की तुलना करें, यदि वर्ण c1 c2 से पहले दिखाई देता है, तो c1

उदाहरण

#include <iostream>
#include <algorithm>
#include <unordered_map>
#include <vector>
using namespace std;
unordered_map<char, int> char_map;
bool compare(string c1, string c2) {
   for (int i = 0; i < min(c1.size(), c2.size()); i++) {
      if (char_map[c1[i]] == char_map[c2[i]])
         continue;
      return char_map[c1[i]] < char_map[c2[i]];
   }
   return c1.size() < c2.size();
}
int main() {
   string str = "pigvxbskyhqzelutoacfjrndmw";
   vector<string> v{ "hello", "programming", "science", "computer", "india" };
   char_map.clear();
   for (int i = 0; i < str.size(); i++)
   char_map[str[i]] = i;
   sort(v.begin(), v.end(), compare);
   // Print the strings after sorting
   for (auto x : v)
   cout << x << " ";
}
के लिए छँटाई के बाद स्ट्रिंग्स को प्रिंट करें

आउटपुट

programming india science hello computer

  1. सी ++ में सेट बिट्स की गिनती के अनुसार एक सरणी को क्रमबद्ध करें

    यहां हम सेट-बिट्स के आधार पर एक सरणी को सॉर्ट करने के लिए एक दिलचस्प समस्या देखेंगे। जब सरणी में एक तत्व में सेट-बिट्स की संख्या अधिक होती है, तो उसे दूसरे तत्व से पहले रखा जाएगा जिसमें सेट बिट्स की संख्या कम होती है। मान लीजिए कुछ संख्याएं 12, 15, 7 हैं। तो सेट बिट्स मूल रूप से उनके द्विआधारी प्रति

  1. सी ++ स्ट्रिंग्स की सरणी

    इस खंड में हम देखेंगे कि C++ में स्ट्रिंग्स की एक सरणी को कैसे परिभाषित किया जाए। जैसा कि हम जानते हैं कि सी में कोई तार नहीं था। हमें कैरेक्टर ऐरे का उपयोग करके स्ट्रिंग्स बनाना है। इसलिए स्ट्रिंग्स की कुछ सरणी बनाने के लिए, हमें वर्णों की एक 2-आयामी सरणी बनानी होगी। प्रत्येक पंक्तियाँ उस मैट्रिक्स

  1. C++ में स्ट्रिंग्स का ऐरे

    स्ट्रिंग कीवर्ड का उपयोग करके C++ में स्ट्रिंग्स की सरणी बनाई जा सकती है। यहां हम इस दृष्टिकोण का उपयोग करके C++ प्रोग्राम पर चर्चा कर रहे हैं। एल्गोरिदम Begin Initialize the elements of array by string keyword. And take string as input. Print the array. End. उदाहरण कोड #include<iostream>