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

C My Wyk R Ayryz Fnkshn



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

نحو:

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







تکرار کرنے والا مٹانا ( تکرار کرنے والی پوزیشن ) ;

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



تکرار کرنے والا مٹانا ( تکرار کرنے والا starting_position، iterator ending_position ) ;

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



شرط:

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





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

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

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

# شامل کریں

#شامل <ویکٹر>

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

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

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

{

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

int کاؤنٹر = 1 ;

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

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

{

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

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

cout << * وہ << '،' ;

اور

cout << * وہ ;

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

کاؤنٹر ++ ;

}

cout << endl ;

}

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

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

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

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

cout << 'ہٹانے سے پہلے ویکٹر کی قدریں:' << endl ;

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

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

پھل مٹانا ( پھل شروع ( ) ) ;

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

cout << ' \n ہٹانے کے بعد ویکٹر کی اقدار: ' << endl ;

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

واپسی 0 ;

}

آؤٹ پٹ:

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



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

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

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

#شامل <ویکٹر>

# شامل کریں

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

// ویکٹر ڈسپلے کریں۔

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

{

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

کے لیے ( آٹو وہ = نمبرز شروع ( ) ; وہ ! = نمبرز اختتام ( ) ; وہ ++ )

cout << * وہ << ' ;

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

cout << ' \n ' ;

}

int مرکزی ( ) {

// عددی اعداد و شمار کے ویکٹر کا اعلان کریں۔

ویکٹر < int > intArray { 678 ، 435 ، 960 ، 231 ، 800 ، 387 ، 634 ، 267 ، 409 ، 294 } ;

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

cout << 'ہٹانے سے پہلے ویکٹر کی قدریں:' << endl ;

ڈسپلے_ویکٹر ( intArray ) ;

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

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

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

انہیں شروع کرو = intArray. شروع ( ) ;

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

پیشگی ( ان کو شروع کرو، 2 ) ;

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

endEle = intArray. اختتام ( ) ;

//ختم ہونے والے تکرار کنندہ کو 3 تک کم کریں۔

پیشگی ( endEle - 3 ) ;

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

intArray. مٹانا ( startEle، endEle ) ;

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

cout << ' \n ہٹانے کے بعد ویکٹر کی اقدار: ' << endl ;

ڈسپلے_ویکٹر ( intArray ) ;

واپسی 0 ;

}

آؤٹ پٹ:

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

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

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

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

# شامل کریں

#شامل <ویکٹر>

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

int مرکزی ( )

{

// عددی اعداد و شمار کے ویکٹر کا اعلان کریں۔

ویکٹر < int > نمبرز = { 78 , چار پانچ , 67 , 25 , 98 , 75 , 52 } ;

cout << 'ہٹانے سے پہلے ویکٹر کی قدریں: \n ' ;

کے لیے ( int const اور میں : نمبرز ) {

cout << میں << '' ;

}

cout << endl ;

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

کے لیے ( آٹو وہ = نمبرز شروع ( ) ; وہ ! = نمبرز اختتام ( ) ; وہ ++ )

{

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

اگر ( * وہ % 5 ! = 0 )

{

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

نمبرز مٹانا ( وہ -- ) ;

}

}

cout << 'ہٹانے کے بعد ویکٹر کی قدریں: \n ' ;

کے لیے ( int const اور میں : نمبرز ) {

cout << میں << '' ;


}


cout << endl ;


واپسی 0 ;

}

آؤٹ پٹ:

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

نتیجہ:

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