चलो,
#include <vector>
vector<int> v {1, 2, 3, -1, -2, -3};
यदि वेक्टर को आरोही या अवरोही क्रम में क्रमबद्ध किया जाता है तो आप इसे जटिलता ओ (1) के साथ पा सकते हैं।
आरोही क्रम के एक वेक्टर के लिए पहला तत्व सबसे छोटा तत्व है, आप इसे v [0] (0 आधारित अनुक्रमण) द्वारा प्राप्त कर सकते हैं और अंतिम तत्व सबसे बड़ा तत्व है, आप इसे v [sizeOfVector-1] से प्राप्त कर सकते हैं।
यदि वेक्टर को अवरोही क्रम में क्रमबद्ध किया जाता है तो अंतिम तत्व सबसे छोटा तत्व है, आप इसे v [sizeOfVector-1] द्वारा प्राप्त कर सकते हैं और पहला तत्व सबसे बड़ा तत्व है, आप इसे v [0] तक प्राप्त कर सकते हैं।
यदि वेक्टर सॉर्ट नहीं किया जाता है, तो आपको सबसे छोटा / सबसे बड़ा तत्व प्राप्त करने के लिए वेक्टर पर पुनरावृत्त करना होगा। इस मामले में समय जटिलता O (n) है, यहाँ n वेक्टर का आकार है।
int smallest_element = v[0]; //let, first element is the smallest one
int largest_element = v[0]; //also let, first element is the biggest one
for(int i = 1; i < v.size(); i++) //start iterating from the second element
{
if(v[i] < smallest_element)
{
smallest_element = v[i];
}
if(v[i] > largest_element)
{
largest_element = v[i];
}
}
आप पुनरावृत्ति का उपयोग कर सकते हैं,
for (vector<int>:: iterator it = v.begin(); it != v.end(); it++)
{
if(*it < smallest_element) //used *it (with asterisk), because it's an iterator
{
smallest_element = *it;
}
if(*it > largest_element)
{
largest_element = *it;
}
}
आप इसे इनपुट अनुभाग में गणना कर सकते हैं (जब आपको किसी दिए गए वेक्टर से सबसे छोटा या सबसे बड़ा तत्व ढूंढना है)
int smallest_element, largest_element, value;
vector <int> v;
int n;//n is the number of elements to enter
cin >> n;
for(int i = 0;i<n;i++)
{
cin>>value;
if(i==0)
{
smallest_element= value; //smallest_element=v[0];
largest_element= value; //also, largest_element = v[0]
}
if(value<smallest_element and i>0)
{
smallest_element = value;
}
if(value>largest_element and i>0)
{
largest_element = value;
}
v.push_back(value);
}
इसके अलावा, आप कार्यों में निर्मित सबसे छोटा / सबसे बड़ा तत्व प्राप्त कर सकते हैं
#include<algorithm>
int smallest_element = *min_element(v.begin(),v.end());
int largest_element = *max_element(v.begin(),v.end());
आप इस फ़ंक्शन का उपयोग करके किसी भी सीमा का सबसे छोटा / सबसे बड़ा तत्व प्राप्त कर सकते हैं। जैसे कि,
vector<int> v {1,2,3,-1,-2,-3};
cout << *min_element(v.begin(), v.begin() + 3); //this will print 1,smallest element of first three elements
cout << *max_element(v.begin(), v.begin() + 3); //largest element of first three elements
cout << *min_element(v.begin() + 2, v.begin() + 5); // -2, smallest element between third and fifth element (inclusive)
cout << *max_element(v.begin() + 2, v.begin()+5); //largest element between third and first element (inclusive)
मैंने min_element () / max_element () फ़ंक्शन से पहले तारांकन (*) का उपयोग किया है। क्योंकि दोनों ही पुनरावृति लौटाते हैं। सभी कोड c ++ में हैं।
cloud
एसटीएल कंटेनर नहीं है, बल्कि एint[10]
। असल में,cloud
एक सदस्य नहीं है.begin()
। जब तक आप केवल एक चीज़ नहीं कर रहे हैं, तब तक एक मूल C ++ पुस्तक प्राप्त करना चाहते हैं।