صف سائز C ++ تلاش کریں۔

Find Array Size C



ایک صف ایک کنٹینر ہے جس میں ایک ہی ڈیٹا ٹائپ کے عناصر ہوتے ہیں۔ اگر ہم کسی صف کا اصل سائز نہیں جانتے تو اس کا تعین مختلف طریقوں سے کیا جا سکتا ہے۔ جب ہم سرنی کے سائز کے بارے میں بات کرتے ہیں تو اصل میں ہم صف میں موجود عناصر کی تعداد کے بارے میں بات کر رہے ہیں۔ بعض اوقات ، ہم صف کے سائز کی وضاحت کرتے ہیں ، اور بعض اوقات بریکٹ خالی رہ جاتے ہیں۔ یہ ایک ظاہری سائز ہے جو صرف ایک صف کی گنجائش ظاہر کرتا ہے تاکہ اس میں قیمت محفوظ ہو۔ مثال کے طور پر ، ایک نمونہ صف کے اعلان پر غور کریں۔

انٹ صف۔[] = {،،،،،}

یہاں ایک صف کا سائز یا ایک صف کی لمبائی 6 ہے۔ اصل سائز مختلف آپریشنز کے ذریعے حاصل کیا جاتا ہے۔ یہ آپریشن اس آرٹیکل میں ایک صف کا سائز حاصل کرنے کے لیے استعمال ہوتے ہیں۔







مثال 1۔

اس مثال میں ، ہم شروع () اور اختتام () کے تصور کو استعمال کریں گے۔ اس طریقہ کار کے ذریعے ، ایک صف کا سائز آسانی سے معلوم کیا جا سکتا ہے۔ یہ دو لائبریریاں ہیں جو معیاری لائبریریوں کے لیے مشہور ہیں۔ یہ دونوں افعال تکرار کرنے والوں کو لوٹاتے ہیں جو صف کے ابتدائی اور اختتامی نکات کو ظاہر کرتے ہیں۔ ہیڈر سے شروع کرتے ہوئے ، ہم ایک سرنی لائبریری استعمال کرتے ہیں۔ اس میں صف سے متعلق تمام افعال شامل ہوں گے۔ مرکزی تقریب میں ، ہم نے ایک صف شروع کی ہے جس میں عددی اقدار ہیں۔



لاگت<<……….<<ختم(کو)-بھیک(کو)<<

یہاں ہم نے صف کے سائز کا ذکر نہیں کیا ہے۔ کاؤٹ کے بعد ڈسپلے بیان میں ، ہمارے پاس end () اور start () افعال استعمال ہوتے ہیں۔ ان دونوں افعال کے درمیان فرق ہمیں ایک صف کا سائز دکھائے گا۔ ان افعال کے پیرامیٹرز میں ، ہم نے صف کو پاس کیا ہے۔ ایسا کرنے سے ، اصل سائز کا تعین کیا جائے گا۔ ان افعال سے حاصل ہونے والی قیمت براہ راست ظاہر ہوتی ہے۔







اب آؤٹ پٹ کی طرف بڑھ رہے ہیں۔ ہمیں ان پروگراموں کو لینکس میں چلانا ہے ، لہذا ہمیں اوبنٹو ٹرمینل کی شمولیت کی ضرورت ہے۔ جیسا کہ ہم C ++ کوڈ استعمال کر رہے ہیں ، لہذا ہمیں مرتب کے ذریعے کوڈ مرتب کرنے کی ضرورت ہے۔ وہ G ++ مرتب کرنے والا ہے۔ کوڈ مرتب کرنے کے بعد ، ہم اس پر عمل کریں گے۔ مندرجہ ذیل کمانڈ آؤٹ پٹ اپروچ دکھاتے ہیں جو ہم نے استعمال کیا ہے۔

$ جی++۔ -o کوڈ 2 کوڈ 2۔ج

$./کوڈ 2



اب آپ آؤٹ پٹ دیکھ سکتے ہیں۔ ایس ٹی ڈی کے معاملے میں اسی طرح کی ایک اور مثال فاصلاتی فنکشن ہے۔ اس فاصلے میں شروع () اور اختتام () افعال استعمال کرکے حساب کیا جاتا ہے۔ یہ ان افعال کو std کے ساتھ استعمال کرکے مکمل ہوا ہے۔

انٹ n=گھنٹے:: فاصلے(گھنٹے::شروع کریں(آمد)،گھنٹے::ختم(آمد))؛

آؤٹ پٹ cout بیان میں حاصل کیا جاتا ہے۔ ریکارڈ دیکھنے کے لیے ، کوڈ پر عمل کرنے کے لیے دوبارہ مرتب کریں۔

یہاں آپ دیکھ سکتے ہیں کہ ہماری مطلوبہ پیداوار حاصل ہو گئی ہے۔

مثال 2۔

یہ مثال C ++ کوڈ میں sizeof () فنکشن کے استعمال سے متعلق ہے ، کیونکہ یہ ویلیو بائٹس کی شکل میں ڈیٹا کا اصل سائز لوٹاتی ہے۔ مزید برآں ، یہ بائٹس کی تعداد واپس کرنے سے متعلق ہے جو ایک صف کو ذخیرہ کرنے کے لیے استعمال ہوتے ہیں۔ دوسرے لفظوں میں ، اس مثال میں ، پہلا قدم کسی صف کے سائز کا اعلان کیے بغیر ایک صف کو شروع کرنا ہے۔ sizeof () فنکشن کے لیے استعمال ہونے والا نحو یہ ہے:

انٹ ال۔= کا سائز(آمد)/کا سائز(آمد[])؛

ar array کہاں ہے۔ arr [0] صف میں عناصر کا انڈیکس دکھاتا ہے۔

تو اس بیان کا مطلب یہ ہے کہ صف کا سائز موجود تمام عناصر کے سائز سے تقسیم کیا گیا ہے ، ایک ایک کرکے۔ یہ لمبائی کے حساب میں مدد کرتا ہے۔ ہم نے فنکشن سے ویلیو ریٹرن وصول کرنے اور اسٹور کرنے کے لیے ایک انٹیجر متغیر استعمال کیا ہے۔

ہم یہاں کمانڈ پرامپٹ سے اسی مرتب عملدرآمد طریقہ سے آؤٹ پٹ حاصل کریں گے۔

آؤٹ پٹ سرنی کا سائز دکھاتا ہے ، جو اس میں موجود عناصر کی تعداد کو ظاہر کرتا ہے ، جو کہ 6 ہے۔

مثال 3۔

اس مثال میں size () فنکشن کا استعمال شامل ہے۔ یہ فنکشن معیاری لائبریری ، STL میں رکھا گیا ہے۔ مرکزی پروگرام کا ابتدائی مرحلہ صف کا اعلان ہے۔ یہاں صف کے نام میں سائز اور عدد کی قیمت بھی شامل ہے۔ یہ طریقہ نتیجہ کو براہ راست آؤٹ پٹ اسٹیٹمنٹ میں بھی لوٹاتا ہے۔

لاگت<<….<<آمدسائز()<<

جہاں 'arr' صف ہے ، نتیجہ لانے یا فنکشن تک رسائی حاصل کرنے کے لیے ، ہمیں سائز کے فنکشن کے ساتھ صف کے نام کی ضرورت ہے۔

نتیجہ ظاہر کرنے کے لیے ، ہم نتیجہ مرتب کرنے اور اس پر عمل کرنے کے لیے g ++ مرتب کرنے والے کا استعمال کرتے ہیں۔

آؤٹ پٹ سے ، آپ دیکھ سکتے ہیں کہ نتیجہ ہمارا مطلوبہ ہے جو صف کا اصل سائز دکھاتا ہے۔

مثال 4۔

پوائنٹس کا استعمال کرتے ہوئے ایک صف کا سائز بھی حاصل کیا جاسکتا ہے کیونکہ پوائنٹس متغیر کی قیمت کا پتہ/مقام محفوظ کرتے ہیں۔ اب نیچے دی گئی مثال پر غور کریں۔

ابتدائی مرحلہ ہمیشہ کی طرح ایک صف کو شروع کرنا ہے۔ پھر پوائنٹر صف کے سائز کے لیے کام کرتا ہے۔

انٹ لین۔= *(&صف+ )- صف؛

یہ بنیادی بیان ہے جو ایک پوائنٹر کے طور پر کام کرتا ہے۔ * ایک صف میں کسی بھی عنصر کی پوزیشن کا پتہ لگانے کے لیے استعمال کیا جاتا ہے ، جبکہ & آپریٹر پوائنٹر کے ذریعے حاصل کردہ مقام کی قیمت حاصل کرنے کے لیے استعمال ہوتا ہے۔ یہ وہ طریقہ ہے جس سے ہم اشاروں سے صف کا سائز حاصل کرتے ہیں۔ نتیجہ ٹرمینل کے ذریعے دکھایا گیا ہے۔ جواب ایک ہی ہے۔ جیسا کہ ذکر کردہ صف کا سائز 13 بتایا گیا ہے۔

مثال 5۔

اس مثال میں ، ہم نے سانچے کی دلیل کٹوتی کے خیال کو استعمال کیا ہے۔ ٹیمپلیٹ دلیل ایک خاص قسم کا پیرامیٹر ہے۔ یہ کسی بھی قسم کی دلیل کو پاس کرنے کے لیے استعمال کیا جاتا ہے ، جیسے باقاعدہ افعال جو کہ بطور دلیل پاس کیے جا سکتے ہیں۔

جب ایک صف کو پیرامیٹر کے طور پر پاس کیا جاتا ہے ، تو اسے پتہ دکھانے کے لیے پوائنٹر میں تبدیل کر دیا جاتا ہے۔ مخصوص صف کی لمبائی حاصل کرنے کے لیے ، ہم ٹیمپلیٹ دلیل کٹوتی کا یہ طریقہ استعمال کرتے ہیں۔ Std معیار کی ایک مختصر شکل ہے۔

دی گئی مثال پر غور کرتے ہوئے ، ہم نے ایک ٹیمپلیٹ کلاس متعارف کرائی ہے جو سرنی سائز حاصل کرنے کے لیے استعمال ہوتی ہے۔ یہ ایک ڈیفالٹ بلٹ ان کلاس ہے جس میں ٹیمپلیٹ دلائل کی تمام فعالیتیں شامل ہیں۔

Constexpr std: : size_tسائز(constٹی(&صف)[ن۔])کوئی بات نہیں{

واپسین۔؛

}

یہ اس تصور میں ایک مستقل لکیر ہے۔ پیداوار براہ راست cout بیان میں حاصل کی جاتی ہے۔

آؤٹ پٹ سے ، آپ دیکھ سکتے ہیں کہ ہمیں اپنی مطلوبہ آؤٹ پٹ مل گئی ہے: صف کا سائز۔

مثال 6۔

ہم پروگرام میں صف کا سائز حاصل کرنے کے لیے std :: vector استعمال کرتے ہیں۔ یہ کنٹینر کی ایک قسم ہے۔ اس کا کام متحرک صفوں کو محفوظ کرنا ہے۔ یہ مختلف کاموں کے لیے مختلف طریقوں سے کام کرتا ہے۔ اس مثال کو پورا کرنے کے لیے ، ہم نے ایک ویکٹر لائبریری استعمال کی ہے جس میں ویکٹر کے تمام افعال شامل ہیں۔ یہ پروگرام میں استعمال ہونے والے cin ، cout ، endl اور vector بیانات کا بھی اعلان کرتا ہے۔ پروگرام میں سب سے پہلے ایک صف شروع کی جاتی ہے۔ آؤٹ پٹ ویکٹر سائز کے ذریعہ کوٹ بیان میں ظاہر ہوتا ہے۔

لاگت<<ویکٹر سائز: <<int_arrayسائز() <<endl؛

اب ہم اوبنٹو ٹرمینل سے آؤٹ پٹ دیکھیں گے۔ صف کا سائز اس میں موجود عناصر کے لیے درست ہے۔

نتیجہ

اس ٹیوٹوریل میں ، ہم نے صف کی لمبائی یا سائز حاصل کرنے کے لیے ایک مختلف انداز استعمال کیا ہے۔ کچھ بلٹ ان افعال ہیں ، جبکہ دیگر دستی طور پر استعمال ہوتے ہیں۔