“Dasturiy injiniring” fakulteti “MA‟lumotlar tuzilmasi va algoritmlar”




Download 1,33 Mb.
Pdf ko'rish
bet12/56
Sana18.05.2024
Hajmi1,33 Mb.
#242340
1   ...   8   9   10   11   12   13   14   15   ...   56
Bog'liq
b2d1fe5c-9484-4aea-a5e7-95281604b19a

 
 
 
 


21 
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 


22 
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"); 


23 

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  


24 
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 1,33 Mb.
1   ...   8   9   10   11   12   13   14   15   ...   56




Download 1,33 Mb.
Pdf ko'rish

Bosh sahifa
Aloqalar

    Bosh sahifa



“Dasturiy injiniring” fakulteti “MA‟lumotlar tuzilmasi va algoritmlar”

Download 1,33 Mb.
Pdf ko'rish