Amaliy ish №4 Mavzu: Аssotsiativ konteynerlar (set, multiset). Tartiblanmagan assotsiativ konteynerlar (unordered set, unordered multiset) Ishning maqsadi


set va multiset sinflaridan foydalanib, amaliy dasturlar yaratish


Download 73.51 Kb.
bet3/5
Sana31.01.2024
Hajmi73.51 Kb.
#1828838
1   2   3   4   5
Bog'liq
4-amaliyot ishi dasturlash II

1. set va multiset sinflaridan foydalanib, amaliy dasturlar yaratish
Ishning maqsadi: C++ dasturlash tilida set va multiset sinflari va uning metodlaridan foydalanish ko’nikmalarini egallsh.
Masalaning qo’yilishi: set va multiset asosida yaratilgan to’plam elementlarini set va mutiset ning maxsus funksiyalari yordamida qayta ishlash.

  1. Masala: Berilgan int turidagi to’plam qiymatlari 2- to’plamda nechta marta qatnashganligini aniqlovchi va ularni ekranga chiqaruvchi dastur tuzing. Ikkala to’plamdan ham bir xil qiymatli elementlar o’chirilib Saralangan to’plam hosil qilinsin hamda uning qiymatlari ekranga chiqarilsin.

Masalani yechish goyasi: multiset konteyneri to’plami yaratiladi. set ning insert() iteratoridan foydalanib, M1 va M2 (multiset) to’plamga qiymatlar o’zlashtiriladi. s (set)to’plamga esa M1 va M2 to’plam qiymatlarini barchasi saralangan va takrorlanmagan holda yoziladi.
Dastur matni:
#include
#include
#include
#include
using namespace std;
int main(){
set s; int n1,n2;
cout<<"1-to'plam elementlar sonini kiriting: "; cin>>n1;
multiset M1, M2;
cout<<"Birinchi to'plam elementlarini kiriting:\n";
for (int i = 0; i < n1; i++){
int j ; cin>>j; M1.insert(j);
}
cout<<"1-to'plam elementlar sonini kiriting: "; cin>>n2;
cout<<"Ikkinchi to'plam elementlarini kiriting:\n";
for (int i = 0; i < n2; i++){
int j ; cin>>j; M2.insert(j);
}
multiset :: iterator i,j,k1,k2;
cout<for ( i=M1.begin(); i!=M1.end(); i++){
cout<<*i<<" ";
}
cout<cout<for ( i=M2.begin(); i!=M2.end(); i++){
cout<<*i<<" ";
}
k1 = M1.begin();
set s2;
for (int i = 0; i < n1; i++){
s2.insert(*k1); k1++;
}
cout<int soni=0;
for ( i=s2.begin(); i!=s2.end(); i++){
for ( j=M2.begin(); j!=M2.end(); j++){
if(M2.count(*i)){
if(*i==*j) {soni++; }
}
}
if(soni>0)cout<<*i<<" -"<else {cout<<*i<<" - qatnashmagan "<soni = 0;
}
//cout<k1 = M1.begin();
k2 = M2.begin();
for (int i = 0; i < n1; i++){
s.insert(*k1);k1++;
s.insert(*k2); k2++;
}
cout<set ::iterator itr;
cout<for ( itr=s.begin(); itr!=s.end(); itr++){
cout<<*itr<<" ";
}
}
//4-tajriba 1-namuna set va multiset

Download 73.51 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5




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