ویکٹر مٹانا () فنکشن C ++ میں۔

Vector Erase Function C



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

نحو:

اس فنکشن کی نحو کی دو اقسام ذیل میں دی گئی ہیں۔







تکرار مٹانا(تکرار پوزیشن)؛

مذکورہ بالا erase () فنکشن ویکٹر سے کسی ایک عنصر کو ہٹانے کے لیے استعمال ہوتا ہے ، اور یہ ایک تکرار کرنے والا لوٹاتا ہے ، اور یہ اس عنصر کی طرف اشارہ کرتا ہے جس کے بعد آخری مٹا ہوا عنصر ہوتا ہے۔



تکرار مٹانا(iterator Start_position ، iterator end_position۔)؛

مذکورہ erase () فنکشن اس فنکشن کے پہلے اور دوسرے دلائل میں بیان کردہ پوزیشن کی بنیاد پر ویکٹر سے متعدد عناصر کو ہٹانے کے لیے استعمال کیا جاتا ہے۔



شرط:

اس ٹیوٹوریل کی مثالوں کو چیک کرنے سے پہلے ، آپ کو چیک کرنا ہوگا کہ جی ++ کمپائلر انسٹال ہے یا نہیں۔ اگر آپ بصری اسٹوڈیو کوڈ استعمال کر رہے ہیں تو پھر قابل عمل کوڈ بنانے کے لیے C ++ سورس کوڈ مرتب کرنے کے لیے ضروری ایکسٹینشن انسٹال کریں۔ یہاں ، بصری اسٹوڈیو کوڈ ایپلی کیشن کو C ++ کوڈ کو مرتب اور چلانے کے لیے استعمال کیا گیا ہے۔ ایک ویکٹر میں عنصر (s) داخل کرنے کے لیے erase () فنکشن کے مختلف استعمال ذیل میں دکھائے گئے ہیں۔





مثال -1: پہلے عنصر عنصر کو ہٹا دیں۔

ویکٹر کے آغاز سے ایک عنصر کو ہٹانے کے لیے درج ذیل کوڈ کے ساتھ C ++ فائل بنائیں۔ کوڈ میں سٹرنگ ویلیوز کا ایک ویکٹر استعمال کیا گیا ہے۔ ویکٹر کی اقدار کو ایک پیرامیٹر کے ساتھ erase () فنکشن کا استعمال کرتے ہوئے ویکٹر سے پہلے عنصر کو حذف کرنے سے پہلے اور بعد میں پرنٹ کیا گیا ہے۔

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

#شامل کریں

#شامل کریں

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

// ویکٹر کی اقدار دکھائیں۔

باطلڈسپلے_ویکٹر(ویکٹر<تار>پھل)

{

// کاؤنٹر شروع کریں۔

intکاؤنٹر= ؛

// لوپ کا استعمال کرتے ہوئے ویکٹر کے عناصر کی تکرار اور پرنٹ کریں۔

کے لیے (آٹووہ=پھلشروع کریں()؛وہ!=پھلختم()؛وہ++۔)

{

// عناصر کو چیک کریں کہ آخری عنصر ہے یا نہیں۔

اگر(کاؤنٹر!=پھلسائز())

لاگت << *وہ<< '،'؛

اور

لاگت << *وہ؛

// کاؤنٹر میں 1 اضافہ کریں۔

کاؤنٹر++۔؛

}

لاگت <<endl؛

}

intمرکزی(باطل) {

// سٹرنگ ڈیٹا کے ویکٹر کا اعلان کریں۔

ویکٹر<تار>پھل= { 'کینو'،'کیلا'،'آم'،'جیک فروٹ'،'لیچی' }؛

// ویکٹر کی موجودہ اقدار پرنٹ کریں۔

لاگت << 'ہٹانے سے پہلے ویکٹر کی اقدار:' <<endl؛

ڈسپلے_ویکٹر(پھل)؛

// ویکٹر سے پہلا عنصر ہٹا دیں۔

پھلمٹانا(پھلشروع کریں())؛

// ہٹانے کے بعد ویکٹر کی موجودہ اقدار کو پرنٹ کریں۔

لاگت << 'nہٹانے کے بعد ویکٹر کی اقدار: ' <<endl؛

ڈسپلے_ویکٹر(پھل)؛

واپسی ؛

}

آؤٹ پٹ:

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



مثال 2: متعدد عناصر کو ہٹا دیں۔

erase () فنکشن کا استعمال کرتے ہوئے ویکٹر سے متعدد عناصر کو ہٹانے کے لیے درج ذیل کوڈ کے ساتھ C ++ فائل بنائیں۔ کوڈ میں عددی اقدار کا ایک ویکٹر استعمال کیا گیا ہے۔ ویکٹر سے ہٹائے گئے عناصر کی حد مقرر کرنے کے لیے یہاں دو تکرار کرنے والے استعمال کیے گئے ہیں۔ erase () فنکشن کو دو پیرامیٹرز کے ساتھ استعمال کیا گیا ہے تاکہ ویکٹر سے متعدد عناصر کو ہٹایا جا سکے۔

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

#شامل کریں

#شامل کریں

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

// ویکٹر دکھائیں۔

باطلڈسپلے_ویکٹر(ویکٹر<int>بے حسی)

{

// لوپ کا استعمال کرتے ہوئے ویکٹر کی اقدار پرنٹ کریں۔

کے لیے(آٹووہ=بے حسیشروع کریں()؛وہ!=بے حسیختم() ؛وہ++۔)

لاگت << *وہ<< ''؛

// نئی لائن شامل کریں۔

لاگت << 'n'؛

}

intمرکزی() {

// انٹیجر ڈیٹا کے ویکٹر کا اعلان کریں۔

ویکٹر<int>انٹرا{ 678۔،435۔،960۔،231۔،800۔،387۔،634۔،267۔،409۔،294۔}؛

// ویکٹر کی موجودہ اقدار پرنٹ کریں۔

لاگت << 'ہٹانے سے پہلے ویکٹر کی اقدار:' <<endl؛

ڈسپلے_ویکٹر(انٹرا)؛

// ویکٹر سے عناصر کی حد کو ہٹانے کے لیے دو تکرار کرنے والوں کا اعلان کریں۔

ویکٹر<int> :: تکرار کرنے والاstartEle ، endEle؛

// تکرار کرنے والے کو پہلی پوزیشن پر سیٹ کریں۔

startEle=انٹراشروع کریں()؛

// شروع کرنے والے تکرار کو 2 سے بڑھا دیں۔

پیشگی(startEle ،)؛

// تکرار کرنے والے کو آخری پوزیشن پر سیٹ کریں۔

اینڈ ایل=انٹراختم()؛

// اختتامی تکرار کو 3 سے کم کریں۔

پیشگی(اینڈ ایل ،-)؛

// عناصر کی حد کو ہٹا دیں۔

انٹرامٹانا(startEle ، endEle)؛

// ہٹانے کے بعد ویکٹر کی موجودہ اقدار کو پرنٹ کریں۔

لاگت << 'nہٹانے کے بعد ویکٹر کی اقدار: ' <<endl؛

ڈسپلے_ویکٹر(انٹرا)؛

واپسی ؛

}

آؤٹ پٹ:

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

مثال 3: مخصوص عناصر کو ہٹا دیں۔

erase () فنکشن کا استعمال کرتے ہوئے ویکٹر کے مخصوص عناصر کو ہٹانے کے لیے درج ذیل کوڈ کے ساتھ C ++ فائل بنائیں۔ کوڈ میں 7 عدد عناصر کا ویکٹر قرار دیا گیا ہے۔ اگلا ، 'for' لوپ نے ویکٹر عناصر کو دہرانے اور ان عناصر کو ویکٹر سے ہٹانے کے لیے استعمال کیا ہے جو 5 سے تقسیم نہیں ہیں۔

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

#شامل کریں

#شامل کریں

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

intمرکزی()

{

// انٹیجر ڈیٹا کے ویکٹر کا اعلان کریں۔

ویکٹر<int>نمبر= { 78۔،چار پانچ،67۔،25۔،98۔،75۔،52۔ }؛

لاگت << ہٹانے سے پہلے ویکٹر کی اقدار:n'؛

کے لیے (int const &میں:نمبر) {

لاگت <<میں<< ''؛

}

لاگت <<endl؛

// نمبروں کو ویکٹر سے ہٹا دیں جو 5 سے تقسیم نہیں ہوتے۔

کے لیے (آٹووہ=نمبرشروع کریں()؛وہ!=نمبرختم()؛وہ++۔)

{

// چیک کریں کہ نمبر 5 سے تقسیم ہے یا نہیں۔

اگر (*وہ٪ != )

{

// تکرار پر مبنی عنصر کو ہٹا دیں۔

نمبرمٹانا(وہ-)؛

}

}

لاگت << ہٹانے کے بعد ویکٹر کی اقدار:n'؛

کے لیے (int const &میں:نمبر) {

لاگت <<میں<< ''؛


}


لاگت <<endl؛


واپسی ؛

}

آؤٹ پٹ:

مندرجہ بالا کوڈ پر عمل کرنے کے بعد درج ذیل آؤٹ پٹ ظاہر ہوگا۔ آؤٹ پٹ سے پتہ چلتا ہے کہ ویکٹر صرف 5 سے تقسیم ہونے والے عناصر پر مشتمل ہے ، اور دیگر عناصر کو ہٹا دیا گیا ہے۔

نتیجہ:

ویکٹر عناصر کو ہٹانے کے لیے اس ٹیوٹوریل میں erase () فنکشن کے مختلف استعمال دکھائے گئے ہیں۔ ویکٹر سے عنصر کو ہٹانے کے لیے C ++ کے بہت سے دوسرے افعال ہیں ، اور وہ افعال ایک وقت میں واحد عنصر کو ہٹا سکتے ہیں۔ لیکن ویکٹر کی کسی بھی پوزیشن سے دونوں سنگل اور ایک سے زیادہ عناصر کو ویکٹر erase () فنکشن کے ذریعے ہٹایا جا سکتا ہے۔