Ўзбекистон республикаси олий ва ўрта махсус


C ++ da dinamik massivlar (belgilar majmuasi yoki yangi qatormi?)



Yüklə 0,87 Mb.
səhifə2/11
tarix21.04.2022
ölçüsü0,87 Mb.
#115441
1   2   3   4   5   6   7   8   9   10   11
Dinamik massiv (2)

C ++ da dinamik massivlar (belgilar majmuasi yoki yangi qatormi?)

Agar ob'ektlarning dinamik majmuasini yaratmoqchi bo'lsam:

C ++-ni avtomatik ravishda tugun moslamalarini yaratish va barcha tugunlar uchun standart konstruktorni chaqiradigan yangi kalit so'z yordamida qator yaratishingiz mumkin.

node* nodes = new node[10];

Yoki tugunlarga markerlar majmuasini yaratish va tugunlarni alohida-alohida tuzish mumkin.

node* nodes[10];

for (int i = 0; i < 10; i++){

nodes[i] = new node();}

Yoki qachon foydalanish kerak? Birinchi misolda, yangi kalit so'zni qator bilan ishlatishda dinamik ravishda ajratilgan tugmalar mavjudmi?

Ushbu ikkita kod zarralarini o'rtasida katta farq bor.

Ikkinchi holatda quyidagi ta'rif ishlatiladi

node* nodes[10];

qatorga yangi elementlar qo'sha olmaysiz. Jildning o'lchami sobit.

Birinchi navbatda operatorni butun qator uchun yangi foydalanganingizda

node* nodes = new node[10];

array o'zboshimchalik bilan elementlar soni bilan qayta ajratilishi mumkin.

Shu sababli, asosiy mezon quyidagilardan iborat: agar siz asosiy kattalikni standart konstruktorga ega bo'ladimi yoki yo'qmi, aniq o'lchamdagi qatorga kerakmi yoki yo'qmi.

Ushbu ikkita kod zarralarini o'rtasida katta farq bor.

Ikkinchi holatda quyidagi ta'rif ishlatiladi

node* nodes[10];

qatorga yangi elementlar qo'sha olmaysiz. Jildning o'lchami sobit.

Birinchi navbatda operatorni butun qator uchun yangi foydalanganingizda

node* nodes = new node[10];

array o'zboshimchalik bilan elementlar soni bilan qayta ajratilishi mumkin.

Shu sababli, asosiy mezon quyidagilardan iborat: agar siz asosiy kattalikni standart konstruktorga ega bo'ladimi yoki yo'qmi, aniq o'lchamdagi qatorga kerakmi yoki yo'qmi.

For **Dynamic Allocation** we can use Vector in C++

int main() {

vector v1;

int x;


for(int j=0;j<=3;j++) {

cin>>x;


v1.push_back(x);// Here we pushing 4 values to the Vector.. }

v1.push_back(12);//Adding one more value to Vector dynamically

for(int i=0;I For **Dynamic Allocation** we can use Vector in C++

int main() {

vector v1;

int x;


for(int j=0;j<=3;j++) {

cin>>x;


v1.push_back(x);// Here we pushing 4 values to the Vector.. }

v1.push_back(12);//Adding one more value to Vector dynamically

for(int i=0;I

For **Dynamic Allocation** we can use Vector in C++

int main(){

vector v1;

int x;

for(int j=0;j<=3;j++) {



cin>>x;

v1.push_back(x);// Here we pushing 4 values to the Vector..

}

v1.push_back(12);//Adding one more value to Vector dynamically



for(int i=0;I

node turidagi bitta elementni saqlash uchun xotirani ajratish uchun birinchi ifoda ishlatilganidan tashqari, ular qanday yaratilganidan farq yo'q. Ikkinchisi esa node turidagi elementlarni blokirovkalash uchun ishlatiladi. Ob'ektlarning dinamik majmuasini yaratish dinamik ravishda siz yaratgan narsalaringizdan qat'i nazar, har bir obyektni ajratadi. Ikkala o'rtada bu erda mavjud bo'lgan yagona farq, yangi yaratilgan tugun bilan alohida-alohida yoki boshqacha ish qilmasligingiz kerakmi yoki yo'qmi.

node turidagi bitta elementni saqlash uchun xotirani ajratish uchun birinchi ifoda ishlatilganidan tashqari, ular qanday yaratilganidan farq yo'q. Ikkinchisi esa node turidagi elementlarni blokirovkalash uchun ishlatiladi. Ob'ektlarning dinamik majmuasini yaratish dinamik ravishda siz yaratgan narsalaringizdan qat'i nazar, har bir obyektni ajratadi. Ikkala o'rtada bu erda mavjud bo'lgan yagona farq, yangi yaratilgan tugun bilan alohida-alohida yoki boshqacha ish qilmasligingiz kerakmi yoki yo'qmi


Yüklə 0,87 Mb.

Dostları ilə paylaş:
1   2   3   4   5   6   7   8   9   10   11




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin