for(int i=0;ii++)a[i]=new int[n];//n ustunlar soni
Shuni qayd etish kerakki, dinamik massivning har bir satri xotiraning turli joylarida joylashishi mumkin (7.1 va 7.3-rasmlar).
Ikki o’lchamli massivni o’chirishda oldin massivning har bir elementi (satri), so’ngra massivning o’zi yo’qotiladi:
for(i=0;i;i++) delete[]a[i]; delete[]a;
Matrisani vektorga ko’paytirish masalasi uchun dinamik massivlardan foydalanishga misol:void main () {
int n,m;
int i,j; float s;
cout<<”\n n=”; cin>>n; // matrisa satrlari soni cout<<”\n m=”; cin>>m; // matrisa ustunlari soni float *b=new float[m];
float *c=new float[n];
// ko’rsatkichlar massiviga xotira ajratish float **a=new float *[n] ; for(i=0;ia[i]=new float[m]; //dinamik xotira ajratish for(j=0;j>b[j];
for(i=0;i>a[i][j];for(i=0;ifor(j=0,s=0;j}
for(i=0;idelete[]c;
for (i=0;i47. C++da strukturlar va ularni ishlatishga oid misollar.
Struktura - bu bitta nom bilan birlashtirilgan o'zgaruvchilar yig'indisi, bu ma'lumotni birgalikda saqlashning umumiy qabul qilingan usulini ta'minlaydi. Strukturani e’lon qilish natijasida struktura ob'ektlarini yaratish uchun ishlatiladigan shablon paydo bo'ladi. Strukturani tashkil etuvchi o'zgaruvchilar struktura a'zolari deb ataladi. (Struktura a'zolari ko'pincha a'zo yoki maydon deb ham ataladi.)
Strukturalarni initsializatsiyalash
Har bir a'zoga qiymatlarni tartib bilan belgilash orqali strukturani initsializatsiyalash juda qiyin vazifa (ayniqsa, agar ular ko'p bo'lsa), shuning uchun C++ tilida strukturalarni initsializatsiyalashning tezkorusuli mavjud – initsializatorlar ro'yxati. Bu struct turi o'zgaruvchisini e'lon qilish paytida strukturaning ba'zi yoki barcha a'zolarini initsializatsiya qilish imkoniyati mavjud:
#include
//@TBCLbot
using namespace std;
int main()
{
struct Employee
{
short id;
int age;
double salary;
};
Employee john = { 5, 27, 45000.0 }; // john.id = 5, john.age = 27, john.salary = 45000.0
Employee james = { 6, 29}; // james.id = 6, james.age = 29, james.salary = 0.0 (jimlik bo'yicha initsializatsiya)
return 0;
}
C++11 standarti bo’yicha uniform initsializatsiyasidan foydalanishingiz mumkin:
Employee john { 5, 27, 45000.0 };
Employee james { 6, 29 };
Agar boshlang'ich ro'yxatida bir yoki bir nechta element yetishmayotgan bo'lsa, u holda ularga standart qiymatlar beriladi (jimlik bo’yicha 0). Yuqoridagi misolda james.salary a'zosiga jimlik bo'yicha 0.0 qiymati berilgan, chunki initsializatsiyalash paytida hech qanday qiymat berilmadi.
Do'stlaringiz bilan baham: |