দিন,
#include <vector>
vector<int> v {1, 2, 3, -1, -2, -3};
ভেক্টরটি যদি আরোহী বা অবতরণ ক্রমে বাছাই করা থাকে তবে আপনি এটি জটিলতা ও (1) সহ সন্ধান করতে পারেন।
আরোহী ক্রমের একটি ভেক্টরের জন্য প্রথম উপাদানটি ক্ষুদ্রতম উপাদান, আপনি এটি ভি [0] (0 ভিত্তিক সূচক) দ্বারা পেতে পারেন এবং শেষ উপাদানটি সবচেয়ে বড় উপাদান, আপনি এটি ভি [আকারঅফেক্টর -১] দ্বারা পেতে পারেন।
যদি ভেক্টরটিকে অবতরণ অনুসারে বাছাই করা হয় তবে সর্বশেষ উপাদানটি ক্ষুদ্রতম উপাদান, আপনি এটি ভি [আকারঅফেক্টর -১] দ্বারা পেতে পারেন এবং প্রথম উপাদানটি সবচেয়ে বড় উপাদান, আপনি এটি ভি [0] দ্বারা পেতে পারেন।
যদি ভেক্টরটি বাছাই না করা হয় তবে আপনাকে সবচেয়ে ছোট / বৃহত্তম উপাদান পেতে ভেক্টরটির উপরে পুনরাবৃত্তি করতে হবে this এই ক্ষেত্রে সময় জটিলতা হ'ল (এন), এখানে এন ভেক্টরের আকার।
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)
আমি মিনি_ এলিমেন্ট () / ম্যাক্সিমেন্ট () ফাংশনগুলির আগে, অ্যাসিরিস্টক (*) ব্যবহার করেছি। কারণ দু'জনই পুনরাবৃত্তির প্রত্যাবর্তন করে। সমস্ত কোড সি ++ এ রয়েছে।
cloud
এটি কোনও এসটিএল ধারক নয়, বরং একটিint[10]
। মূলত,cloud
একটি সদস্য নেই.begin()
। আপনি কেবল এই একটি কাজ না করে না হলে একটি বেসিক সি ++ বই পেতে পারে।