एक ही प्रकार के ऑपरेंड की तुलना करने के लिए छह रिलेशनल ऑपरेटर हैं। ये हैं>, <,==, <=,>=, !=. इस आलेख में C++ में STL सरणियों पर इन रिलेशनल ऑपरेटरों की व्याख्या शामिल है। एसटीएल सरणियों में उपयोग किए जाने वाले प्रमुख दो ऑपरेटर दो सरणी कंटेनरों के बीच समानता तुलना (==) और तुलना से कम (<) हैं।
समानता (==) तुलना दोनों सरणियों के तत्वों की तुलना करना शुरू कर देती है। ==ऑपरेटर के L.H.S और R.H.S पर दोनों सरणियों के पहले तत्वों से शुरू होकर, तुलना पहले बेमेल पर रुक जाती है।
कम-से-कम (<) तुलना लेक्सिकोग्राफिक तरीके से काम करती है। एल्गोरिथ्म std::lexicographic_compare एल्गोरिथम की तरह काम करता है। तुलना पारस्परिक तरीके से ऑपरेटर (<) का उपयोग करके क्रमिक रूप से काम करती है (एक <बी और बी <ए दोनों की जांच करें)। पहले अक्षर से अंत तक शब्दों को वर्णानुक्रम में क्रमबद्ध करने के लिए शब्दकोशों में लेक्सिकोग्राफिक ऑर्डर का उपयोग किया जाता है। अन्य ऑपरेटर ==और <का उपयोग करते हैं जैसा कि नीचे दिखाया गया है -
- a!=b बराबर है !(a==b)
- a>b बराबर है (b
- a<=b बराबर है !(b
- a>=b बराबर है !(a
- a<=b बराबर है !(b
ये ऑपरेटर्स <हेडर> एरे में ओवरलोडेड हैं।
नोट:L.H.S पर दोनों STL सरणियाँ। और आर.एच.एस. समान पैरामीटर होने चाहिए <प्रकार, लंबाई>।
समय की जटिलता तुलना की रैखिक समय है और सरणियों के आकार पर निर्भर करता है। ओ(एन)
यदि शर्तें सही हैं या गलत हैं तो वापसी मूल्य सही है।
उदाहरण
#include <iostream> #include <stdio.h> #include <array> using namespace std; int main(){ // declaration of array array<int, 5> marks1 = { 10,20,30,40,50 }; array<int, 5> marks2 = { 100,200,300,400,500 }; array<int, 5> marks3 = { 10,20,30,40,50 }; //a>=b is equivalent to !(a<b) as shown if (marks1 >= marks2){ cout << "Marks1 is greater than equal to Marks2\n"; } else{ cout << "Marks1 is neither greater nor equal to Marks2\n"; } if (!(marks1 < marks2)){ cout << "Marks1 is greater than equal to Marks2\n"; } else{ cout << "Marks1 is neither greater nor equal to Marks2\n"; } //a<=b is equivalent to !(a>b) as shown if (marks1 <= marks2){ cout << "Marks1 is less than equal to Marks2\n"; } else{ cout << "Marks1 is neither less nor equal to Marks2\n"; } if (!(marks1 > marks2)){ cout << "Marks1 is less than equal to Marks2\n"; } else{ cout << "Marks1 is neither less nor equal to Marks2\n"; } //a!=b is equivalent to !(a==b) as shown if (marks1 != marks3){ cout << "Marks1 is not equal to Marks2\n"; } else{ cout << "Marks1 is equal to Marks2\n"; } if (!(marks1 == marks3)){ cout << "Marks1 is not equal to Marks2\n"; } else{ cout << "Marks1 is equal to Marks2\n"; } return 0; }
आउटपुट
Marks1 is neither greater nor equal to Marks2 Marks1 is neither greater nor equal to Marks2 Marks1 is less than equal to Marks2 Marks1 is less than equal to Marks2 Marks1 is equal to Marks2 Marks1 is equal to Marks2