foydalanish nom maydoni std ;
int asosiy ( int argc, char *argv[])
{
vektor < int > A ( 10 ); // Birinchidan, int tipidagi vektorni aniqlang , boshlang'ich o'lchami 10
intn ; // n ichidagi tub sonlar
int prime_count = 0 ;
cout << " Raqam kiriting:" << endl ;
cin >>n ;
// n = 1 bo'lganda, tub son bo'lmaydi
agar (n== 1 )
{
cout << " Shartlarni qondiradigan tub son yo'q" << endl ;
qaytish 0 ;
}
// n = 2 faqat tub son 2 ga ega (2 - eng kichik tub son)
agar (n== 2 )
{
cout < < "2" << endl ;
qaytish 0 ;
}
// hol n> 2
A[ asosiy_hisob ++] = 2 ; // Massivga kirish kabi, vektorga kirish uchun [] indeksidan foydalaning
uchun ( int i= 3 ;i<=n;i++)
{
agar (prime_count == A.size() )
{
a.o'lchamini o'zgartirish (asosiy_hisoblash + 10 ); // sig'im vektor A plyus 10
}
// tub sonlarni topish uchun asosiy kod
agar (i% 2 == 0 ) davom etsa ; // 2 dan katta juft sonlar, albatta, tub sonlar emas
int j= 3 ;
esa ( j <=i/ 2 && i%j != 0 )
{
j+= 2 ;
}
// Taxminiy j yuqoridagilardan tashqarida va sababi:
// Agar i j ga bo'linadigan bo'lsa, i aniq son emas;
// Agar i j ustida butun son bo'lolmasa va j i / 2 dan katta bo'lsa, u holda i tubdir.
agar ( j >i/ 2 )
{
A[ prime_count ++]=i;
}
}
uchun ( int i= 0 ;i
cout <
cout << endl ; _
qaytish 0 ;
}
operatsiya natijasi:
4.Ro‘yxat
Ro'yxat (ro'yxat) ikki marta bog'langan ro'yxatdan iborat. Uning ma'lumotlari bir nechta tugunlardan iborat bo'lib, har bir tugun ma'lumot blokini (ya'ni, haqiqiy saqlangan ma'lumotlar), oldingi ko'rsatgichni va oxirgi ko'rsatgichni o'z ichiga oladi, ularga oldinga yoki orqaga kirish mumkin, lekin tasodifiy kirish mumkin emas.
Ro'yxatning xususiyatlari : birinchi ikkitasi afzallik, oxirgi ikkitasi kamchiliklar.
(1) Qo'shni xotira maydonidan foydalanmang, shuning uchun dinamik operatsiyalar o'z xohishiga ko'ra bajarilishi mumkin. (Bu bog'langan ro'yxat qo'shni xotiradan foydalanmasligi sababli)
(2) Uni ichkarining istalgan joyiga tezda kiritish va o'chirish mumkin, bu vektorning o'rtasiga kiritish va o'chirishdan ko'ra ko'proq moslashuvchan. (Shuningdek, bog'langan ro'yxat massiv qo'shish va o'chirishdan ko'ra ko'proq moslashuvchan bo'lishining afzalligi)
(3) Ichki tasodifiy kirishga ruxsat berilmaydi, ya'ni "[]" va vector.at() qo'llab-quvvatlanmaydi. (Bog'langan ro'yxatdagi pozitsiyani topish uchun siz boshidan birma-bir qidirishingiz kerak)
(4) Vektor bilan solishtirganda, u ko'proq xotirani oladi.
Do'stlaringiz bilan baham: |