مثال کے ساتھ C ++ سٹینڈرڈ ٹیمپلیٹ لائبریری (STL) میں ویکٹر۔

C ++ ویکٹر کیا ہے؟

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

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

اس C ++ ٹیوٹوریل میں ، آپ سیکھیں گے:

ویکٹر کب استعمال کریں؟

ایک C ++ ویکٹر کو درج ذیل حالات میں استعمال کیا جانا چاہیے:

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

C ++ میں ویکٹر کو کیسے شروع کریں

C ++ میں ویکٹر کا نحو یہ ہے: | _+_ |

  • جیسا کہ اوپر دکھایا گیا ہے ، ہم ویکٹر کلیدی لفظ سے شروع کرتے ہیں۔
  • ڈیٹا کی قسم ویکٹر میں ذخیرہ کیے جانے والے عناصر کا ڈیٹا ٹائپ ہے۔
  • نام ویکٹر یا ڈیٹا عناصر کا نام ہے۔
  • اشیاء ویکٹر کے ڈیٹا کے عناصر کی تعداد کو ظاہر کرتی ہیں۔ یہ پیرامیٹر اختیاری ہے۔

تکرار کرنے والے۔

تکرار کرنے والوں کا مقصد ان عناصر تک رسائی میں ہماری مدد کرنا ہے جو کسی ویکٹر میں محفوظ ہیں۔ یہ ایک ایسی چیز ہے جو اشارے کی طرح کام کرتی ہے۔ یہاں C ++ ویکٹر کے تعاون سے عام تکرار کرنے والے ہیں:

  • ویکٹر :: شروع (): یہ ایک تکرار دیتا ہے جو ویکٹر کے پہلے عنصر کی طرف اشارہ کرتا ہے۔
  • ویکٹر :: اینڈ (): یہ ایک تکرار دیتا ہے جو ویکٹر کے ماضی کے آخر کے عنصر کی طرف اشارہ کرتا ہے۔
  • ویکٹر :: cbegin (): یہ ویکٹر :: شروع () کی طرح ہے ، لیکن اس میں عناصر میں ترمیم کرنے کی صلاحیت نہیں ہے۔
  • ویکٹر :: cend (): یہ ویکٹر :: اینڈ () کی طرح ہے لیکن ویکٹر عناصر میں ترمیم نہیں کرسکتا۔

ترمیم کرنے والے۔

موڈیفائرز مخصوص ڈیٹا ٹائپ کے معنی بدلنے کے لیے استعمال ہوتے ہیں۔ C ++ میں عام ترمیم کرنے والے یہ ہیں:

  • ویکٹر :: push_back (): یہ ترمیم کرنے والے عناصر کو پیچھے سے دھکیلتے ہیں۔
  • ویکٹر :: داخل کریں (): کسی مخصوص جگہ پر ویکٹر میں نئی ​​اشیاء داخل کرنے کے لیے۔
  • ویکٹر :: پاپ بیک (): یہ ترمیم کرنے والا ویکٹر عناصر کو پیچھے سے ہٹا دیتا ہے۔
  • ویکٹر :: مٹانا (): یہ مخصوص جگہ سے عناصر کی ایک حد کو ہٹانے کے لیے استعمال کیا جاتا ہے۔
  • ویکٹر :: صاف (): یہ تمام ویکٹر عناصر کو ہٹا دیتا ہے۔

مثال 1۔

 vector name (items) 

آؤٹ پٹ:

یہاں کوڈ کا ایک اسکرین شاٹ ہے:

کوڈ کی وضاحت:

  1. ہمارے کوڈ میں iostream ہیڈر فائل شامل کریں۔ یہ ہمیں کنسول سے پڑھنے اور لکھنے کی اجازت دے گا۔
  2. ہمارے کوڈ میں ویکٹر ہیڈر فائل شامل کریں۔ یہ ہمیں C ++ میں ویکٹر کے ساتھ کام کرنے کی اجازت دے گا۔
  3. ایس ٹی ڈی نام کی جگہ شامل کریں تاکہ اس کی کلاسوں اور افعال کو بغیر کال کیے استعمال کریں۔
  4. مین () فنکشن کو کال کریں جس کے اندر پروگرام کی منطق شامل کی جائے۔
  5. {مرکزی () فنکشن کے جسم کے آغاز کو نشان زد کرتا ہے۔
  6. عدد کا ایک مجموعہ ذخیرہ کرنے کے لیے nums نامی ویکٹر کا اعلان کریں۔
  7. ویکٹر پر تکرار کرنے میں ہماری مدد کے لیے لوپ بنائیں۔ متغیر ہمیں 1 سے ویکٹر عناصر پر تکرار کرنے میں مدد کرے گا۔سینٹ5 تکویںعناصر.
  8. عناصر کو پیچھے سے ویکٹر نمبر میں دبائیں۔ ہر تکرار کے لیے ، یہ متغیر a کی موجودہ قیمت کو ویکٹر میں شامل کرے گا ، جو 1 سے 5 ہے۔
  9. کنسول پر کچھ متن پرنٹ کریں۔
  10. ویکٹر نمبرز کے عناصر کو شروع سے ماضی کے آخر کے عنصر پر تکرار کرنے کے لیے ایک تکرار کرنے والا متغیر استعمال کریں۔ نوٹ ہم استعمال کر رہے ہیں vector :: begin () اور vector :: end () تکرار کرنے والے۔
  11. ہر تکرار کے لیے کنسول پر تکرار متغیر کی طرف اشارہ کردہ اقدار کو پرنٹ کریں۔
  12. کنسول پر کچھ متن پرنٹ کریں۔ n ایک نئی لائن کیریکٹر ہے ، وہاں سے پرنٹ کرنے کے لیے کرسر کو نئی لائن میں منتقل کر رہا ہے۔
  13. ویکٹر نمبرز کے عناصر کو شروع سے ماضی کے آخر کے عنصر پر تکرار کرنے کے لیے ایک تکرار کرنے والا متغیر استعمال کریں۔ نوٹ ہم استعمال کر رہے ہیں vector :: cbegin () اور vector :: cend () تکرار کرنے والے۔
  14. ہر تکرار کے لیے کنسول پر تکرار کنندہ کی طرف اشارہ کردہ اقدار کو پرنٹ کریں۔
  15. اگر پروگرام کامیابی سے چلتا ہے تو مرکزی فنکشن کو ایک قیمت واپس کرنی چاہئے۔
  16. مرکزی () فنکشن کے جسم کا اختتام۔

مثال 2۔

 #include #include using namespace std; int main() { vector nums; for (int a = 1; a <= 5; a++) nums.push_back(a); cout << 'Output from begin and end: '; for (auto a = nums.begin(); a != nums.end(); ++a) cout << *a << ' '; cout << '
Output from cbegin and cend: '; for (auto a = nums.cbegin(); a != nums.cend(); ++a) cout << *a << ' '; return 0; } 

آؤٹ پٹ:

یہاں کوڈ کا ایک اسکرین شاٹ ہے:

کوڈ کی وضاحت:

  1. اس کے افعال کو استعمال کرنے کے لیے ہمارے کوڈ میں iostream ہیڈر فائل شامل کریں۔
  2. ویکٹر ہیڈر فائل کو اس کے افعال کو استعمال کرنے کے لیے ہمارے کوڈ میں شامل کریں۔
  3. ایس ٹی ڈی نام کی جگہ اس کی کلاسوں کو بلا کر استعمال کرنے کے لیے شامل کریں۔
  4. مرکزی () فنکشن کو کال کریں۔ پروگرام کی منطق کو اس کے جسم کے اندر شامل کیا جانا چاہیے۔
  5. مین () فنکشن کے باڈی کا آغاز۔
  6. کچھ عددی اقدار کو ذخیرہ کرنے کے لیے nums نامی ویکٹر کا اعلان کریں۔
  7. 5 عناصر کو ویکٹر نمبروں میں محفوظ کریں۔ ہر ایک کی قیمت 1 ہے۔
  8. کنسول پر کچھ متن پرنٹ کریں۔
  9. ویکٹر نمبرز کے عناصر پر تکرار کرنے کے لیے ایک تکرار کرنے والا متغیر استعمال کریں۔
  10. ہر تکرار کے لیے کنسول پر ویکٹر نمبر کی اقدار پرنٹ کریں۔
  11. ویکٹر نمبر کے آخر میں ویلیو 2 شامل کریں۔
  12. ویکٹر نمبروں کے سائز کو ذخیرہ کرنے کے لیے ایک عدد متغیر n کا اعلان کریں۔
  13. دوسرے متن کے ساتھ ساتھ ویکٹر نمبر کی آخری قدر پرنٹ کریں۔ اسے 2 واپس کرنا چاہئے۔
  14. ویکٹر نمبر سے آخری عنصر کو ہٹا دیں۔ 2 کو ہٹا دیا جائے گا۔
  15. کنسول پر متن پرنٹ کریں۔ text n کرسر کو نئی لائن پر منتقل کرتا ہے تاکہ وہاں پرنٹ پرنٹ کیا جا سکے۔
  16. ویکٹر نمبرز کے عناصر پر تکرار کرنے کے لیے ایک تکرار کرنے والا متغیر استعمال کریں۔
  17. ہر تکرار کے لیے کنسول پر ویکٹر نمبر کی اقدار پرنٹ کریں۔
  18. ویکٹر نمبرز کے آغاز میں ویلیو 7 داخل کریں۔
  19. دوسرے متن کے ساتھ ساتھ ویکٹر نمبر کی پہلی قدر پرنٹ کریں۔ اسے 7 واپس آنا چاہیے۔
  20. ویکٹر نمبر سے تمام عناصر کو حذف کریں۔
  21. تمام مواد کو صاف کرنے کے بعد دوسرے متن کے ساتھ ویکٹر نمبر کا سائز پرنٹ کریں۔ اسے 0 واپس آنا چاہیے۔
  22. مرکزی () فنکشن کے جسم کا اختتام۔

صلاحیت

ویکٹر کی صلاحیت کا تعین کرنے کے لیے درج ذیل افعال استعمال کریں:

  • سائز () - یہ ایک ویکٹر میں آئٹمز کی تعداد لوٹاتا ہے۔
  • زیادہ سے زیادہ سائز () -یہ سب سے زیادہ تعداد میں اشیاء لوٹاتا ہے جو ایک ویکٹر محفوظ کر سکتا ہے۔
  • صلاحیت () - یہ کسی ویکٹر کو مختص کردہ اسٹوریج کی جگہ لوٹاتا ہے۔
  • سائز تبدیل کریں () - یہ۔ کنٹینر کو n اشیاء پر مشتمل کرنے کے لیے سائز تبدیل کرتا ہے۔ اگر ویکٹر کا موجودہ سائز n سے زیادہ ہے تو ، پچھلی اشیاء کو ویکٹر سے ہٹا دیا جائے گا۔ اگر ویکٹر کا موجودہ سائز n سے چھوٹا ہے تو ویکٹر کے پچھلے حصے میں اضافی اشیاء شامل کی جائیں گی۔
  • خالی () i۔ t درست لوٹتا ہے اگر کوئی ویکٹر خالی ہے ، ورنہ ، یہ غلط واپس کرتا ہے۔

مثال 3۔

 #include #include using namespace std; int main() { vector nums; nums.assign(5, 1); cout << 'Vector contents: '; for (int a = 0; a < nums.size(); a++) cout << nums[a] << ' '; nums.push_back(2); int n = nums.size(); cout << '
Last element: ' << nums[n - 1]; nums.pop_back(); cout << '
Vector contents: '; for (int a = 0; a < nums.size(); a++) cout << nums[a] << ' '; nums.insert(nums.begin(), 7); cout << '
First element: ' << nums[0]; nums.clear(); cout << '
Size after clear(): ' << nums.size(); } 

آؤٹ پٹ:

یہاں کوڈ کا ایک اسکرین شاٹ ہے:

کوڈ کی وضاحت:

  1. اس کے فنکشن کو استعمال کرنے کے لیے ہمارے کوڈ میں iostream ہیڈر فائل شامل کریں۔
  2. ویکٹر ہیڈر فائل کو اس کے افعال کو استعمال کرنے کے لیے ہمارے کوڈ میں شامل کریں۔
  3. ہمارے کوڈ میں std نام کی جگہ شامل کریں اس کی کلاسز کو بلاوجہ استعمال کریں۔
  4. مرکزی () فنکشن کو کال کریں۔ پروگرام کی منطق کو اس فنکشن کے اندر شامل کیا جانا چاہیے۔
  5. عدد کو ذخیرہ کرنے کے لیے vector1 نامی ویکٹر بنائیں۔
  6. 1 سے 10 کی اقدار کے ساتھ متغیر x بنانے کے لیے لوپ کا استعمال کریں۔
  7. متغیر x کی اقدار کو ویکٹر میں دبائیں۔
  8. کنسول پر دوسرے ٹیکسٹ کے ساتھ ویکٹر کا سائز پرنٹ کریں۔
  9. کنسول پر دوسرے متن کے ساتھ ساتھ ویکٹر کی صلاحیت پرنٹ کریں۔
  10. کنسول پر دوسرے ٹیکسٹ کے ساتھ ویکٹر جو چیزیں رکھ سکتا ہے اس کی زیادہ سے زیادہ تعداد پرنٹ کریں۔
  11. صرف 5 عناصر رکھنے کے لیے ویکٹر کا سائز تبدیل کریں۔
  12. دوسرے متن کے ساتھ ویکٹر کا نیا سائز پرنٹ کریں۔
  13. چیک کریں کہ آیا ویکٹر خالی نہیں ہے۔
  14. اگر ویکٹر خالی نہیں ہے تو کنسول پر متن پرنٹ کریں۔
  15. اگر ویکٹر خالی ہو تو کیا کرنا ہے یہ بتانے کے لیے کسی اور بیان کا استعمال کریں۔
  16. اگر ویکٹر خالی ہے تو کنسول پر پرنٹ کرنے کے لیے متن۔
  17. پروگرام کی کامیاب تکمیل پر قیمت واپس کرنی چاہیے۔
  18. مین () فنکشن باڈی کا اختتام۔

خلاصہ:

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