Mavzu: 5 amaliy mashg’ulot stl algoritmlari


sort() va reverse() algoritmlari


Download 147.37 Kb.
Pdf ko'rish
bet3/5
Sana18.06.2023
Hajmi147.37 Kb.
#1565218
1   2   3   4   5
Bog'liq
12-13-AMALIY (1)

sort() va reverse() algoritmlari. Quyidagi misolda (-listing) butun 
vektorni saralaymiz, tartiblangan elementlarni chiqaramiz va keyin ularni 
teskari tartibda chiqaramiz: 
#include  
#include  
#include  
using namespace std
int main() 

vector vect; 
vect.push_back(4); 
vect.push_back(8); 
vect.push_back(-3); 
vect.push_back(3); 
vect.push_back(-8); 
vect.push_back(12); 
vect.push_back(5); 
sort(vect.begin(), vect.end()); // vektor elementlarini tartiblash 


vector::const_iterator it; // iterator e'lon qilish 
for (it = vect.begin(); it != vect.end(); ++it) // vektor elementlarini sikl va 
iterator yordamida ko'rsatish 
cout << *it << ' '; 
cout << '\n'; 
reverse(vect.begin(), vect.end()); // vektor elementlarini teskari 
tartiblash 
for (it = vect.begin(); it != vect.end(); ++it) // vektor elementlarini sikl va 
iterator yordamida ko'rsatish 
cout << *it << ' '; 
cout << '\n'; 

Dasturni bajarish natijasi: 
-8 -3 3 4 5 8 12 
12 8 5 4 3 -3 -8 
E'tibor bering sort () algoritmi vektorlar bilan ishlamaydi. Vektorning o'ziga 
xos sort() usuli bor, bu holda u samaraliroq. 
for_each() – konteynerning barcha elementlari bilan ishlash. Uning 
ishlash tartibi -listingda berilgan dasturda keltirilgan.  
 
#include  
#include
#include  
using namespace std; 
void show(int i) //Algoritmga uzatiladigan funksiya 

cout << i << '\n'; 

int main() 

const size_t len = 5; 
int *arr = new int[len]{1,2,3,4,5}; // massivga ko'rsatgich (massiv emas!) 
for_each(begin(arr),end(arr),show); //xato! 

 
for_each — bu modifikatsiyalanmagan algoritm (-listing) 


#include  
#include 
using namespace std; 
void summ(int &i, const int value){ 
i = i+value; 

int main() 

auto M = {1, 2, 3, 4, 5}; 
for_each(M.begin(),M.end(),summ);
/* hech qanday qiymat o'tkazib bo’lmaydi, foreach faqat va faqat bitta 
parametrli funksiyani tanlaydi (endi summ ikkita parametrga ega). Bu ham 
xatolik */ 

 
for_eachdan to’g’ri foydalanilgan dastur quyida keltirilgan (-listing) 
#include  
#include  
#include  
using namespace std; 
void doubleNumber(int& i) 

i *= 2; 

int main() 

array  arr{ 1, 2, 3, 4 }; 
for_each(arr.begin(), arr.end(), doubleNumber); 
for (int i : arr) 

cout << i << ' '; 

cout << '\n'; 
return 0; 


Download 147.37 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling