2-جہتی ویکٹر C ++ میں۔

2 Dimensional Vector C



ویکٹر کو متحرک صف بنانے کے لیے استعمال کیا جاتا ہے اور ویکٹر سے عناصر کو شامل اور ہٹا کر ویکٹر کا سائز بڑھایا اور کم کیا جا سکتا ہے۔ جب کسی ویکٹر کو دوسرے ویکٹر کے اندر ڈیکلیئر کیا جاتا ہے تو ویکٹر کو 2-Dimensional ویکٹر کہا جاتا ہے جو 2-Dimensional array کی طرح کام کرتا ہے۔ 2-جہتی ویکٹر میں قطاروں کی ایک سے زیادہ تعداد ہوتی ہے جہاں ہر قطار ایک اور ویکٹر ہوتی ہے۔ C ++ میں 2 جہتی ویکٹر کے استعمال اس ٹیوٹوریل میں دکھائے گئے ہیں۔

نحو:

دو جہتی ویکٹر کی ترکیب ذیل میں دی گئی ہے۔







ویکٹر<ویکٹر<ڈیٹا کی قسم>>ویکٹر_ نام؛

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



مثال 1: کالموں کی مساوی تعداد کا 2 جہتی ویکٹر بنائیں۔

مندرجہ ذیل مثال تین قطاروں اور چار کالموں کے 2 جہتی ویکٹر کو ظاہر کرنے کا طریقہ دکھاتی ہے جس میں کریکٹر ڈیٹا ہوتا ہے۔ یہاں ، ویکٹر کی اقدار ویکٹر ڈیکلریشن اور نیسٹڈ کے وقت بیان کی گئی ہیں۔ کے لیے لوپ ویکٹر کی اقدار کو پرنٹ کرنے کے لیے استعمال کیا گیا ہے۔



// ضروری لائبریریاں شامل کریں۔

#شامل کریں

#شامل کریں

نام کی جگہ کا استعمال کرتے ہوئے std؛
intمرکزی()
{
/ *
دو جہتی ویکٹر کا اعلان کریں۔
کرداروں کی
* /

ویکٹر<ویکٹر>chrVector
{{'سے'، 'ب'، 'ج'، 'ڈی'}، {'اور'، 'f'، 'جی'، 'h'}، {'میں'، 'جے'، 'سے'، ''}}؛
// ویکٹر کی اقدار پرنٹ کریں۔
لاگت<< ویکٹر کی اقدار ہیں:n'؛
کے لیے (intمیں= ؛میں<chrVectorسائز()؛میں++۔)
{
کے لیے (intj= ؛j<chrVector[میں].سائز()؛j++۔)
لاگت<<chrVector[میں][j] << ''؛
لاگت<< 'n'؛
}
واپسی ؛
}

آؤٹ پٹ:





مندرجہ ذیل آؤٹ پٹ اوپر کوڈ پر عمل کرنے کے بعد ظاہر ہوگا۔



مثال 2: کالموں کی مختلف تعداد کے ساتھ 2 جہتی ویکٹر بنائیں۔

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

// ضروری لائبریریاں شامل کریں۔

#شامل کریں

#شامل کریں

نام کی جگہ کا استعمال کرتے ہوئے std؛

intمرکزی()
{
/ *
کے ساتھ 2D ویکٹر شروع کریں۔
عدد نمبر جہاں ہر قطار مختلف ہوتی ہے۔
عناصر کی تعداد
* /

ویکٹر<ویکٹر>انٹ ویکٹر
{{بیس}، {10۔، 30۔}، {پچاس، 40۔، 60۔ }، {80۔، 10۔، 70۔، 90۔ }}؛
// لوپ کا استعمال کرتے ہوئے ویکٹر کی اقدار پرنٹ کریں۔
لاگت<< ویکٹر کی اقدار ہیں:n'؛
کے لیے (ویکٹوور:انٹ ویکٹر)
{
کے لیے (intگھنٹے:قطار)
لاگت<<گھنٹے<< ''؛
لاگت<< 'n'؛
}
واپسی ؛
}

آؤٹ پٹ:

مندرجہ ذیل آؤٹ پٹ اوپر کوڈ پر عمل کرنے کے بعد ظاہر ہوگا۔

مثال 3: ڈیفالٹ ویلیو کے ساتھ 2 جہتی خالی ویکٹر شروع کریں۔

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

ڈیفالٹ ویلیو ، 6.5 کو ویکٹر میں 2 قطاریں اور 3 کالم بنا کر داخل کیا گیا ہے۔ کی سائز () فنکشن کا استعمال ویکٹر کی اقدار کو پرنٹ کرنے کے لیے کل قطاروں اور کالموں کو گننے کے لیے کیا گیا ہے۔

// ضروری لائبریریاں شامل کریں۔

#شامل کریں

#شامل کریں

نام کی جگہ کا استعمال کرتے ہوئے std؛

intمرکزی()
{
// ڈیفالٹ ویلیو سیٹ کریں۔
تیرناپہلے سے طے شدہ قیمت= 6.5۔؛
// بیرونی ویکٹر کی وضاحت کریں۔
ویکٹر<ویکٹر>آؤٹ ویکٹ؛

کے لیے (intمیں= ؛میں< ؛میں++۔)
{
// اندرونی ویکٹر کی وضاحت کریں۔
ویکٹر؛
کے لیے (intj= ؛j< ؛j++۔) {
// ڈیفالٹ ویلیو داخل کریں۔
inVect.پیچھے دھکیلو(پہلے سے طے شدہ قیمت)؛
}
// اندرونی ویکٹر کو بیرونی ویکٹر میں داخل کریں۔
آؤٹ ویکٹپیچھے دھکیلو(inVect)؛
}

// ویکٹر کی اقدار پرنٹ کریں۔
لاگت<< ویکٹر کی اقدار ہیں:n'؛
کے لیے (intمیں= ؛میں<آؤٹ ویکٹسائز()؛میں++۔)
{
کے لیے (intj= ؛j<آؤٹ ویکٹ[میں].سائز()؛j++۔)
لاگت<<آؤٹ ویکٹ[میں][j] << ''؛
لاگت<< 'n'؛
}
واپسی ؛
}

آؤٹ پٹ:

مندرجہ ذیل آؤٹ پٹ اوپر کوڈ پر عمل کرنے کے بعد ظاہر ہوگا۔ آؤٹ پٹ ڈیفالٹ ویلیو کی بنیاد پر ویکٹر کا مواد اور کوڈ کے ذریعہ بنائی گئی قطاروں اور کالموں کی تعداد کو ظاہر کرتا ہے۔

مثال 4: 2-جہتی خالی ویکٹر کو ان پٹ ویلیو لے کر شروع کریں۔

صارف سے ان پٹ لے کر 2 جہتی ویکٹر بنانے کا طریقہ مندرجہ ذیل مثال میں دکھایا گیا ہے۔ ایک عدد کا 2 جہتی خالی ویکٹر کوڈ میں قرار دیا گیا ہے جس میں 2 قطاریں اور 3 کالم ہوں گے۔

گھریلو ' کے لیے 'لوپ صارف سے 6 (2 × 3) عدد نمبر لینے اور انڈیکس ویلیوز کا استعمال کرتے ہوئے ویکٹر میں داخل کرنے کے لیے استعمال کیا گیا ہے۔ ایک اور گھونسلا ' کے لیے لوپ کا استعمال ویکٹر کی داخل کردہ اقدار کو پرنٹ کرنے کے لیے کیا گیا ہے۔

// ضروری لائبریریاں شامل کریں۔

#شامل کریں

#شامل کریں

نام کی جگہ کا استعمال کرتے ہوئے std؛

intمرکزی()
{
// کالز کی تعداد کی وضاحت کریں۔
intکے ساتہ= ؛
// قطاروں کی تعداد کی وضاحت کریں۔
intقطار= ؛
// ایک عدد متغیر کو شروع کریں۔
intگھنٹے= ؛
// خالی ویکٹر کو شروع کریں۔
ویکٹر<ویکٹر>int2DVector؛

// بیرونی ویکٹر کا سائز تبدیل کریں۔
int2DVector.سائز تبدیل کریں(قطار)؛
کے لیے (intمیں= ؛میں<قطار؛میں++۔)
{
// اندرونی ویکٹر کا سائز تبدیل کریں۔
int2DVector[میں].سائز تبدیل کریں(کے ساتہ)؛
کے لیے (intj= ؛j<کے ساتہ؛j++۔)
{
// صارف سے ان پٹ لیں۔
لاگتگھنٹے؛
// ویکٹر میں داخل کریں۔
int2DVector[میں][j] =گھنٹے؛
}
}

// ویکٹر کی اقدار پرنٹ کریں۔
لاگت<< ویکٹر کی اقدار ہیں:n'؛
کے لیے (intمیں= ؛میں<int2DVector.سائز()؛میں++۔)
{
کے لیے (intj= ؛j<int2DVector[میں].سائز()؛j++۔)
لاگت<<int2DVector[میں][j] << ''؛
لاگت<< 'n'؛
}
واپسی ؛
}

آؤٹ پٹ:

مندرجہ ذیل آؤٹ پٹ اوپر کوڈ پر عمل کرنے کے بعد ظاہر ہوگا۔ آؤٹ پٹ قطاروں اور کالموں کی تعداد کی بنیاد پر 6 ان پٹ ویلیوز اور ویکٹر کا مواد دکھاتا ہے۔

نتیجہ

ایک 2 جہتی ویکٹر C ++ پروگرامنگ میں قطاروں اور کالموں پر مبنی ڈیٹا کو ذخیرہ کرنے اور ان تک رسائی کے لیے استعمال کیا جاتا ہے۔ 2-جہتی ویکٹر بنانے کے مختلف طریقے اس ٹیوٹوریل میں سادہ مثالوں کا استعمال کرتے ہوئے دکھائے گئے ہیں۔ C ++ میں 2 جہتی ویکٹر کے استعمال کا مقصد اس ٹیوٹوریل کو پڑھنے کے بعد صاف ہو جائے گا۔