Ma'lumotlar tuzilmasi va algoritmlar (laboratory)



Download 374,5 Kb.
bet6/9
Sana03.03.2022
Hajmi374,5 Kb.
#481478
1   2   3   4   5   6   7   8   9
Bog'liq
1 Laboratoriya ishi (3)

1.3.4. Vektorlar

C++ dasturlash muhitida ma’lumotlarni massivdan tashqari sal boshqacharoq usulda saqlashning yana bir turi mavjud, ya’ni vektorlar. Vektor elementlari ustida massiv elementlari ustida bajariladigan amallarni bajarish mumkin. Ma’lumotlarni massivda saqlashda elementlar soni oldindan ma’lum bo‘lishi kerak. Ayrim paytlarda massivga nechta element kiritilishi ma’lum bo‘lmaydi va o‘shanda dinamik dasturlashdan foydalanish kerak bo‘ladi, ya’ni massivga qo‘shiladigan elementga xotira ajratishga to‘g‘ri keladi. Shunday hollarda vector klassidan foydalanish mumkin. Vector klassi o‘zgaruvchan uzunlikdagi massiv yaratishga yordam beradi. Vektor bu elementlari soni oldindan ma’lum bo‘lmagan bir xil toifadagi elementlar ketma-ketligidir. Vektorning massivdan farqi, vector uzunligi oldindan berilmaydi va u dastur bajarilishi mobaynida o‘zgarib turadi. Vektor yaratish uchun kutubxonasiga ulanish kerak, ya’ni dastur boshida #include qatori bo‘lishi kerak va vektorni e’lon qilishning 2 ta usuli mavjud – vektor uzunligini ko‘rsatib va bo‘sh vektor ko‘rinishida.


vector o‘zgaruvchi_nomi;
Masalan, vector test; bu yerda int toifali, test nomli bo‘sh vektor yaratildi. Vektor elementlariga indeks orqali murojaat qilib bo‘ladi, lekin bu ko‘rinishda vektor yaratilganda vektor elementiga indeks bilan murojaat qilib qiymat berib bo‘lmaydi, ya’ni quyidagi dastur kodi noto‘g‘ri:
vector vek;
vek[0]=123;
vek[1]=234;
Bu holda vektorga element kiritish quyidagicha amalga oshiriladi:
vek.push_back(7);//vector oxiriga yangi element 7 ni kiritish
vek.push_front(17);//vector boshiga yangi element 17 ni kiritish
vek.pop_back();// vektor oxirgi elementini o‘chirish funksiyasi


vek.pop_front();// vektor 1-elementini o‘chirish funksiyasi
Misol:
#include
#include
using namespace std;
int main(){
vector< string > text;
string word;
while(word!="0"){
text.push_back( word );
cin>>word;
}
for(int i=0;i
system("pause");
}
Vektor yaratishning 2-usuli xuddi massivga o‘xshash bo‘lib, unda vektor uzunligi oldindan ko‘rsatiladi va berilgan uzunlikka mos barcha elementlarga avtomatik tarzda 0 qiymat beriladi. Vektor elementlariga murojaat xuddi massiv elementlariga murojaat kabi indeks orqali amalga oshiriladi va qiymat berilishi mumkin.
#include
#include
using namespace std;
int main()
{
vector< int > ivec(5);
ivec[0]++; //bunda vektor 0-elementi qiymati bittaga oshirildi
ivec[1]=11; //vektor 1-elementiga 11 qiymati berildi
for(int i=0;i
system("pause");
}
Natija: 1 11 0 0 0
Agar bu usulda vektor yaratiladigan bo‘lsa, push_back() va push_front() funksiyalari vektor uzunligini oshiradi. Misol uchun:
#include
#include
using namespace std;
int main()
{
vector< int > ivec(5);
ivec[0]++;
ivec[1]=11;
ivec.push_back(123);
for(int i=0;i
system("pause");
}
Natija: 1 11 0 0 0 123
Vektor ustida quyidagi funksiyalar orqali amal bajarish mumkin:

  • test.at(i) - test[i] kabi vektor i-elementiga murojaat qilish;

  • test.asign(n,m) – vektorga m qiymatli n ta element kiritish;

  • test.front() – vektor ko‘rsatkichini 1-elementga o‘rnatish;

  • test.back() - vektor ko‘rsatkichini oxirgi elementga o‘rnatish;

  • test.size() – vektor elementlari sonini aniqlash;

  • test.swap(test2) – test vektori tarkibi bilan test2 vektori tarkibini almashtirish

  • test.empty() – vektor bo‘shligini tekshirish;

Vektorga oid misol ko‘ramiz. Quyidagicha masala qo‘yilgan bo‘lsin: massivning juft qiymatli elementlaridan vektor hosil qiling.
#include
#include
using namespace std;
int main(){
vector< int > avec;
int n;cout<<"n=";cin>>n;
int a[n];
for(int i=0;i>a[i];
if(a[i]%2==0) avec.push_back(a[i]);}
cout<<”avec=”;
for(int i=0;i
system("pause");
}
Natija: n=5
1 2 3 4 5
avec= 2 4



Download 374,5 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish