|
|
bet | 7/9 | Sana | 29.11.2022 | Hajmi | 307 Kb. | | #875077 |
| Bog'liq 1-лаб
1.3.4. Vektorlar
C++ dasturlash muhıtıda málumotlarnı massıvdan tashqarı sal boshqacharoq usulda saqlashnıng yana bır turı mavjud, yánı vektorlar. Vektor elementları ustıda massıv elementları ustıda bajarıladıgan amallarnı orınlaw mumkin. Málumotlarnı massıvda saqlashda elementlar sonı oldından málum bólıshı kerak. Ayrım paytlarda massıvga nechta element kırıtılıshı málum bólmaydı hám óshanda dınamık dasturlashdan foydalanısh kerak bóladı, yánı massıvga qóshıladıgan elementga yad ajratıshga tóǵrı keladı. Shunday hollarda vector klassıdan foydalanısh mumkin. Vector klassı ózgaruvchan uzunlıkdagı massıv yaratıshga yordam beradı. Vektor bu elementları sonı oldından málum bólmagan bır xıl túrdagı elementlar ketma-ketlıgıdır. Vektornıng massıvdan farqı, vector uzunlıgı oldından berılmaydı hám u dastur bajarılıshı mobaynıda ózgarıb turadı. Vektor yaratısh ushun kutubxonasıga ulanısh kerak, yánı dastur boshıda #ınclude qatorı bólıshı kerak hám vektornı e’lon qılıshnıng 2 ta usulı mavjud – vektor uzunlıgını kórsatıb hám bósh vektor kórınıshıda.
vector ózgaruvchı_atı;
Máselen, vector <ınt> test; bu yerda ınt túrlı, test nomlı bósh vektor yaratıldı. Vektor elementlarıga ındeks orqalı murojaat qılıb bóladı, lekin bu kórınıshda vektor yaratılganda vektor elementıga ındeks menen murojaat qılıb mánıs berıb bólmaydı, yánı to’mendegı dastur kodı notóǵrı:
vector<ınt> vek;
vek[0]=123;
vek[1]=234;
Bu holda vektorga element kırıtısh to’mendegıcha amalga oshırıladı:
vek.push_back(7);//vector oxırıga yangı element 7 nı kırıtısh
vek.push_front(17);//vector boshıga yangı element 17 nı kırıtısh
vek.pop_back();// vektor oxırgı elementını óchırısh funksiyası
vek.pop_front();// vektor 1-elementını óchırısh funksiyası
Mısol:
#ınclude
#ınclude <ıostream.h>
usıng namespace std;
ınt maın(){
vector< strıng > text;
strıng word;
whıle(word!="0"){
text.push_back( word );
cın>>word;
}
for(ınt ı=0;ı
system("pause");
}
Vektor yaratıshnıng 2-usulı xuddı massıvga óxshash bólıb, unda vektor uzunlıgı oldından kórsatıladı hám berılgan uzunlıkka mos barcha elementlarga avtomatık tarzda 0 mánıs berıladı. Vektor elementlarıga murojaat xuddı massıv elementlarıga murojaat kabı ındeks orqalı amalga oshırıladı hám mánıs berılıshı mumkin.
#ınclude
#ınclude <ıostream.h>
usıng namespace std;
ınt maın()
{
vector< ınt > ıvec(5);
ıvec[0]++; //bunda vektor 0-elementı mánısı bıttaga oshırıldı
ıvec[1]=11; //vektor 1-elementıga 11 mánısı berıldı
for(ınt ı=0;ı<ıvec.sıze();ı++) cout<<ıvec[ı]<<" ";
system("pause");
}
Natıja: 1 11 0 0 0
Eger bul usulda vektor jaratılatuǵın bolsa, push_back() hám push_front() funksiyaları vektor uzunlıǵın asıradı. Mısal ushun:
#ınclude
#ınclude <ıostream.h>
usıng namespace std;
ınt maın()
{
vector< ınt > ıvec(5);
ıvec[0]++;
ıvec[1]=11;
ıvec.push_back(123);
for(ınt ı=0;ı<ıvec.sıze();ı++) cout<<ıvec[ı]<<" ";
system("pause");
}
Natıje: 1 11 0 0 0 123
Vektor ustınde to’mendegı funksiyalar arqalı ámel orınlaw múmkin:
test.at(ı) - test[ı] kıbı vektor ı-elementıne múrájat qılıw;
test.asıgn(n,m) – vektorǵa m mánıslı n element kırıtıw;
test.front() – vektor kórsetkıshın 1-elementke ornatıw;
test.back() - vektor kórsetkıshın axırǵı elementke órnatıw;
test.sıze() – vektor elementlerı sanın anıqlaw;
test.swap(test2) – test vektorı quramı menen test2 vektorı quramın almastırıw;
test.empty() – vektor boslıǵın tekserıw;
Vektorǵa tıyıslı mısal kóremız. To’mendegıshe másele qóyılǵan bolsın: massıvtın’ jup mánıslı elementlerinen vektor payda qılın’.
#ınclude
#ınclude <ıostream.h>
usıng namespace std;
ınt maın(){
vector< ınt > avec;
ınt n;cout<<"n=";cın>>n;
ınt a[n];
for(ınt ı=0;ı>a[ı];
ıf(a[ı]%2==0) avec.push_back(a[ı]);}
cout<<”avec=”;
for(ınt ı=0;ı
system("pause");
}
Natıja: n=5
1 2 3 4 5
avec= 2 4
Do'stlaringiz bilan baham: |
|
|