एक ही प्रकार के ऑपरेंड की तुलना के लिए छह संबंधपरक ऑपरेटर हैं। ये >, <, ==, <=, >=, != हैं। इस लेख में C++ में STL सरणी पर इन संबंधपरक ऑपरेटरों की व्याख्या है। STL सरणी में उपयोग किए जाने वाले दो प्रमुख ऑपरेटर समानता तुलना (==) और कम-से-कम तुलना (<) हैं।
समानता (==) तुलना == ऑपरेटर के दोनों ओर की दोनों सरणियों के तत्वों की तुलना शुरू करती है। L.H.S और R.H.S की पहली तत्वों से शुरू होकर, तुलना पहले बेमेल पर रुक जाती है।
कम-से-कम (<) तुलना लेक्सिकोग्राफिक तरीके से काम करती है। एल्गोरिदम std::lexicographic_compare एल्गोरिदम की तरह काम करता है। तुलना ऑपरेटर(<) का उपयोग करके पारस्परिक तरीके से क्रमिक रूप से काम करती है (a
ये ऑपरेटर
नोट: L.H.S. और R.H.S. दोनों STL सरणियों में समान पैरामीटर
समय जटिलता तुलना की रैखिक समय है और सरणी के आकार पर निर्भर करती है। O(n)
वापसी मान सच है यदि शर्तें मान्य हैं या अन्यथा गलत।
उदाहरण
#include <iostream> #include <stdio.h> #include <array> using namespace std; int main(){ // सरणी की घोषणा 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, !(ab) के बराबर है जैसा दिखाया गया है if (marks1 <= marks2){ cout << "Marks1, Marks2 से कम या बराबर है\n"; } else{ cout << "Marks1, Marks2 से न तो कम है और न ही बराबर\n"; } if (!(marks1 > marks2)){ cout << "Marks1, Marks2 से कम या बराबर है\n"; } else{ cout << "Marks1, Marks2 से न तो कम है और न ही बराबर\n"; } //a!=b, !(a==b) के बराबर है जैसा दिखाया गया है if (marks1 != marks3){ cout << "Marks1, Marks2 के बराबर नहीं है\n"; } else{ cout << "Marks1, Marks2 के बराबर है\n"; } if (!(marks1 == marks3)){ cout << "Marks1, Marks2 के बराबर नहीं है\n"; } else{ cout << "Marks1, Marks2 के बराबर है\n"; } return 0; }
आउटपुट
Marks1 न तो Marks2 से अधिक है और न ही बराबर Marks1 न तो Marks2 से अधिक है और न ही बराबर Marks1, Marks2 से कम या बराबर है Marks1, Marks2 से कम या बराबर है Marks1, Marks2 के बराबर है Marks1, Marks2 के बराबर है