C++ میں Size_t

C My Size T



C++ سب سے زیادہ مقبول اور وسیع زبان ہے جو فنکشنز سے بھرپور ہے جو ہمارے کام کو زیادہ آسان بناتی ہے۔ یہ ہمیں 'size_t' قسم کے ساتھ سہولت فراہم کرتا ہے جو کسی بھی قسم کے ڈیٹا کے زیادہ سے زیادہ سائز کو ذخیرہ کرنے میں مدد کرتا ہے۔ C++ معیاری لائبریریوں میں 'size_t' نامی ایک منفرد غیر دستخط شدہ عددی قسم کی وضاحت کی گئی ہے۔ SIZE_MAX مستقل وہ سب سے بڑی قدر ہے جسے 'size_t' قسم کو تفویض کیا جا سکتا ہے۔ ایک سرنی کا سب سے بڑا سائز یا اشیاء جو نظریاتی طور پر قابل فہم ہیں کو 'size_t' میں محفوظ کیا جا سکتا ہے۔ اس کا استعمال صرف اس صورت میں کریں جب ہمیں بڑی میٹرکس، ارے وغیرہ کی ضرورت ہو۔ C++ پروگرامنگ میں 'size_t' منفی نہیں ہو سکتا۔

مثال 1:

مختلف ہیڈر فائلیں یہاں درآمد کی جاتی ہیں جو کہ 'stddef.h'، 'حدود' اور 'iostream' ہیں۔ کثرت سے استعمال ہونے والے متغیرات، اقسام اور پوائنٹرز کی تعریفیں 'stddef.h' میں مل سکتی ہیں اور 'حدود' ہیڈر فائل کو مستقل کے طور پر استعمال کیا جاتا ہے جو کہ انٹیگرل اقسام کی حدود کی نمائندگی کرتا ہے، جیسے کہ مختلف ڈیٹا کی اقسام کے لیے کم سے کم اور زیادہ سے زیادہ اقدار۔ ، جو اس ہیڈر فائل کے ذریعے قابل رسائی ہیں۔ اس کے بعد، 'iostream' کو شامل کیا جاتا ہے کیونکہ وہ فنکشنز جو ڈیٹا کو ان پٹ/آؤٹ پٹ کرنے کے لیے استعمال کیے جاتے ہیں اس میں بیان کیے گئے ہیں۔

اس کے بعد، 'std' نام کی جگہ پھر یہاں شامل کی جاتی ہے۔ اس کے نیچے، 'main()' طریقہ استعمال کیا جاتا ہے۔ اس کے اندر، ہم 'cout' رکھتے ہیں جو اس ڈیٹا کو پیش کرنے میں مدد کرتا ہے جسے ہم یہاں رکھیں گے۔ 'numeric_limits::max()' کو ٹائپ کیا جاتا ہے کیونکہ یہ سب سے زیادہ محدود قدر واپس دیتا ہے جس کی عددی قسم 'T' نمائندگی کر سکتی ہے۔ یہ ہر پابند قسم کے لیے اہم ہے لیکن یہ منفی نہیں ہو سکتا۔







کوڈ 1:



# شامل کریں
#شامل <حدود>
# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( ) {
cout << 'سائز_ٹی کا زیادہ سے زیادہ سائز ہے' << عددی_حدود :: زیادہ سے زیادہ ( ) << endl ;
}

آؤٹ پٹ:
ہم محسوس کر سکتے ہیں کہ 'T' قسم کا زیادہ سے زیادہ سائز اب پیش کیا گیا ہے جو کہ ایک بہت بڑی قدر ہے جیسا کہ درج ذیل میں دکھایا گیا ہے:







مثال 2:

یہاں دو ہیڈر فائلیں درآمد کی گئی ہیں جن میں 'حدود' اور 'iostream' شامل ہیں۔ جیسا کہ ڈیٹا کو ان پٹ اور آؤٹ پٹ کرنے کے لیے درکار افعال اس میں بیان کیے گئے ہیں، یہاں 'iostream' شامل کیا گیا ہے۔ اس کے بعد، 'حدود' ہیڈر فائل کو مستقل تک رسائی حاصل کرنے کے لیے استعمال کیا جاتا ہے جو مختلف ڈیٹا کی اقسام کے لیے کم سے کم اور زیادہ سے زیادہ اقدار جیسے اٹوٹ اقسام کی حدود کو بیان کرتی ہے۔

اس کے بعد، 'std' نام کی جگہ یہاں متعارف کرائی جاتی ہے اور 'main()' فنکشن کو کہا جاتا ہے۔ اس کے نیچے، ہم C++ پروگرامنگ میں انٹیجر ڈیٹا ٹائپ کے اوپری باؤنڈ کی سب سے زیادہ قیمت پیش کرنے کے لیے 'cout' کے اندر موجود 'INT_MAX' کا استعمال کرتے ہیں۔ پھر، مندرجہ ذیل لائن میں، ہم 'size_t' استعمال کرتے ہیں جو سب سے زیادہ قیمت دیتا ہے۔



کوڈ 2:

# شامل کریں
# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( ) {
cout << 'زیادہ سے زیادہ عددی قدر:' << INT_MAX << endl ;

cout << 'وہ سائز جو size_t فنکشن رکھتا ہے:' << ( سائز_ٹی ) 0 - 1 << endl ;
واپسی 0 ;
}

آؤٹ پٹ :
عدد کا زیادہ سے زیادہ سائز پہلے پیش کیا جاتا ہے جو ہمیں 'INT_MAX' کی مدد سے ملتا ہے۔ اس کے بعد، زیادہ سے زیادہ سائز جو 'size_t' اسٹور کرتا ہے وہ رینڈر کیا جاتا ہے جو ہمیں اس کوڈ میں 'size_t' کی مدد سے ملتا ہے۔

مثال 3:

یہاں، دو ہیڈر فائلیں، 'climits' اور 'iostream' درآمد کی جاتی ہیں۔ 'iostream' کو یہاں شامل کیا گیا ہے کیونکہ اس میں ڈیٹا کو ان پٹ اور آؤٹ پٹ کرنے کے لیے درکار فنکشنز کی وضاحت کی گئی ہے۔ اس کے بعد، انٹیگرل اقسام کی حدود کو بیان کرنے والے مستقلات جیسے کہ مختلف ڈیٹا کی اقسام کے لیے کم از کم اور زیادہ سے زیادہ قدریں 'کلیمٹس' ہیڈر فائل کے ذریعے حاصل کی جاتی ہیں۔

یہاں، 'مین()' فنکشن کو اب استعمال کیا گیا ہے اور 'std' نام کی جگہ کو بعد میں متعارف کرایا گیا ہے۔ اس کے نیچے، ہم C++ پروگرامنگ میں انٹیجر ڈیٹا ٹائپ کی زیادہ سے زیادہ ویلیو کے اوپری باؤنڈ کو آؤٹ پٹ کرنے کے لیے 'cout' کے اندر 'INT_MAX' استعمال کرتے ہیں۔ اس کے نیچے، ہم 'INT_MIN' کا استعمال کرتے ہیں جو 'int' ڈیٹا کی قسم کی کم قیمت لوٹاتا ہے۔ پھر، ہم 'size_t' استعمال کرتے ہیں جو درج ذیل لائن میں ذخیرہ کرنے والی زیادہ سے زیادہ قیمت حاصل کرتا ہے:

کوڈ 3:

# شامل کریں
# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( ) {
cout << سب سے بڑی عددی قدر: << INT_MAX << endl ;
cout << 'سب سے چھوٹا عدد:' << INT_MIN << endl ;
cout << 'وہ سائز جو size_t فنکشن رکھتا ہے:' << ( سائز_ٹی ) 0 - 1 << endl ;
واپسی 0 ;
}

آؤٹ پٹ:
سب سے پہلے، عدد کا زیادہ سے زیادہ سائز ظاہر ہوتا ہے جسے ہم 'INT_MAX' کی مدد سے حاصل کرتے ہیں۔ دوسرا، عدد کا کم از کم سائز ظاہر ہوتا ہے جسے ہم 'INT_MIN' کی مدد سے حاصل کرتے ہیں۔ پھر، اس کوڈ میں 'size_t' کی مدد سے، زیادہ سے زیادہ سائز جو 'size_t' اسٹورز میں پیش کیا جاتا ہے۔

مثال 4:

اس کوڈ میں شامل ہیڈر فائلیں 'cstddef'، 'iostream' کے ساتھ ساتھ 'array' ہیں۔ ان ہیڈر فائلوں کو شامل کیا گیا ہے تاکہ ہم ان فنکشنز کو استعمال کرسکیں جن کی تعریف ان ہیڈر فائلوں میں بیان کی گئی ہے۔ 'array' ہیڈر فائل کو یہاں شامل کیا گیا ہے کیونکہ ہمیں اس کوڈ میں 'arrays' اور فنکشنز کے ساتھ کام کرنا ہے۔ ہم یہاں 'my_sVar' متغیر کا اعلان 'const size_t' کے ساتھ کرتے ہیں اور اس کے سائز کو رینڈر کرنے کے لیے اسے '1000' کی قدر سے شروع کرتے ہیں۔

اس کے بعد، ہم 'int' ڈیٹا کی قسم کی 'num[]' ارے کا بھی اعلان کرتے ہیں اور 'my_sVar' کو اس کے سائز کے طور پر پاس کرتے ہیں۔ پھر، ہم 'size_of()' فنکشن کا استعمال کرتے ہیں جس میں ہم 'num' متغیر کو پیرامیٹر کے طور پر رکھتے ہیں اور اسے 'size_t' قسم کے 'my_size' متغیر میں محفوظ کرتے ہیں۔ پھر، ہم 'cout' کا استعمال کرتے ہیں اور یہاں 'SIZE_MAX' ٹائپ کرتے ہیں تاکہ یہ 'my_sVar' متغیر کا زیادہ سے زیادہ سائز پیش کرے۔

اگلا، ہم ارے قسم کے عناصر کو چھوٹی تعداد میں دکھاتے ہیں۔ ہم اسے صرف 10 کو 1000 دکھانے کے لیے منتخب کرتے ہیں جو آؤٹ پٹ میں فٹ ہونے کے لیے بہت زیادہ ہے۔ 'size_t' کی قسم کا استعمال کرتے ہوئے، ہم انڈیکس 0 سے شروع کرتے ہیں یہ بتانے کے لیے کہ کس طرح 'size_t' کو اشاریہ سازی اور گنتی دونوں کے لیے استعمال کیا جا سکتا ہے۔ چونکہ نمبر کم ہو جائیں گے، اس لیے صف کو نزولی ترتیب میں دکھایا گیا ہے جیسا کہ ہم نے کوڈ میں '–a' رکھا ہے۔

کوڈ 4:

# شامل کریں
# شامل کریں
#include
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( ) {
const سائز_ٹی my_sVar = 1000 ;
int ایک پر [ my_sVar ] ;
سائز_ٹی میرا_سائز = کا سائز ( ایک پر ) ;
cout << 'my_sVar کا زیادہ سے زیادہ سائز =' << SIZE_MAX << endl ;
cout << 'جب نمبروں کی ایک صف کے ساتھ کام کرتے ہیں تو سائز_t کی قسم مندرجہ ذیل ہے۔' ;
صف < سائز_ٹی ، 10 > my_arr ;
کے لیے ( سائز_ٹی a = 0 ; a ! = my_arr سائز ( ) ; ++ a )
my_arr [ a ] = a ;
کے لیے ( سائز_ٹی a = my_arr سائز ( ) - 1 ; a < my_arr سائز ( ) ; -- a )
cout << my_arr [ a ] << ' ;
واپسی 0 ;
}

آؤٹ پٹ:
یہ پہلے متغیر کے زیادہ سے زیادہ سائز کو رینڈر کرتا ہے اور پھر نزولی ترتیب میں صف کو پیش کرتا ہے۔

مثال 5:

اس کوڈ میں 'cstddef'، 'iostream'، اور 'array' ہیڈر فائلیں شامل ہیں۔ چونکہ اس کوڈ کے لیے ہم سے 'arrays' اور فنکشنز کے ساتھ کام کرنے کی ضرورت ہے، اس لیے 'array' ہیڈر فائل یہاں رکھی گئی ہے۔ 'var' متغیر کے سائز کو رینڈر کرنے کے لیے، ہم اسے یہاں 'const size_t' ویلیو کے ساتھ اعلان کرتے ہیں اور اسے '1000' سے شروع کرتے ہیں۔ 'var' متغیر کا زیادہ سے زیادہ سائز پھر یہاں رینڈر کیا جاتا ہے جیسا کہ ہم نے 'cout' فنکشن استعمال کیا اور اس فیلڈ میں 'SIZE_MAX' کی وضاحت کی۔

اگلا، ہم کوشش کرتے ہیں کہ سرنی قسم کی اشیاء کو کم مقدار میں ظاہر کریں۔ ابھی تک، ہم نے صرف 20 ڈسپلے کرنے کا انتخاب کیا ہے کیونکہ 1000 آؤٹ پٹ کو بھر دے گا۔ ہم یہ ظاہر کرتے ہیں کہ کس طرح 'size_t' کو اشاریہ سازی اور شمار دونوں کے لیے استعمال کیا جا سکتا ہے 'size_t' قسم کا استعمال کرتے ہوئے اور انڈیکس 0 سے شروع ہوتا ہے۔ پھر صف کو نزولی ترتیب میں دکھایا جاتا ہے کیونکہ نمبرز کم ہوتے جائیں گے جیسا کہ '–a' کی جگہ کے ذریعے اشارہ کیا گیا ہے۔ درج ذیل کوڈ:

کوڈ 5:

# شامل کریں
# شامل کریں
#include
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( ) {
const سائز_ٹی تھا = 1000 ;
cout << var کا زیادہ سے زیادہ سائز = ' << SIZE_MAX << endl ;
cout << 'سائز_ٹی قسم کو نمبروں کی ایک صف کے ساتھ استعمال کیا گیا ہے' ;

صف < سائز_ٹی ، بیس > array_num ;
کے لیے ( سائز_ٹی میں = 0 ; میں ! = array_num سائز ( ) ; ++ میں )
array_num [ میں ] = میں ;
کے لیے ( سائز_ٹی میں = array_num سائز ( ) - 1 ; میں < array_num سائز ( ) ; -- میں )
cout << array_num [ میں ] << ' ;
واپسی 0 ;
}

آؤٹ پٹ :
یہ متغیر کو اس کے زیادہ سے زیادہ سائز میں رینڈر کرنے کے بعد ایک گھٹتی ہوئی ترتیب میں رینڈر کرتا ہے۔

نتیجہ

C++ پروگرامنگ میں 'size_t' قسم کو اس مضمون میں اچھی طرح سے دریافت کیا گیا ہے۔ ہم نے وضاحت کی ہے کہ ہم اپنے C++ کوڈز میں 'size_t' استعمال کرتے ہیں کیونکہ یہ اپنی سب سے بڑی قدر کو محفوظ کرتا ہے۔ ہم نے یہ بھی وضاحت کی کہ یہ ایک غیر دستخط شدہ قسم ہے اور یہ منفی نہیں ہو سکتی۔ ہم نے C++ پروگرامنگ کے کوڈز کا مظاہرہ کیا جہاں ہم نے 'size_t' کا استعمال کیا اور پھر اس مضمون میں ان کے نتائج کو پیش کیا۔