ماڈیول اسباق (1/2)
ارے اور ویکٹر
C++ میں، ڈیٹا کے جمع کرنے کا انتظام بنیادی طور پر دو ٹولز کے ذریعے کیا جاتا ہے: پرانی طرز کی صفیں (سی طرز کی صفیں) اور ویکٹرز (std::vector)۔ مستحکم اور متحرک میموری کے درمیان فرق کو سمجھنا موثر کوڈ لکھنے کے لیے بنیادی ہے۔
1. جامد صفیں (سی طرز کی صفیں)
ایک صف ایک ہی قسم کے عناصر کا مجموعہ ہے جو مربوط میموری والے مقامات پر محفوظ ہے۔ جامد صف کا سائز کمپائل کے وقت معلوم ہونا چاہیے اور بعد میں تبدیل نہیں کیا جا سکتا:
int grades[5] = {18, 22, 25, 28, 30}; // Array of 5 integersکلیدی خصوصیات:
- فکسڈ سائز: آپ رن ٹائم پر عناصر کو شامل یا ہٹا نہیں سکتے ہیں۔
- اسٹیک ایلوکیشن: مختص کرنے اور ڈیلوکیٹ کرنے میں بہت تیز۔
- رسائی: انڈیکس آپریٹر کے ذریعے ہو گئی
[](جیسے،grades[0]پہلے عنصر کے لیے)۔
2. متحرک ویکٹرز (std::vector)
C++ معیاری ٹیمپلیٹ لائبریری (STL) std::vector کلاس فراہم کرتی ہے، جو ایک متحرک صف کی نمائندگی کرتی ہے۔ اسے استعمال کرنے کے لیے، آپ کو <vector> ہیڈر شامل کرنا ہوگا:
#include <vector>
std::vector<int> numbers; // Creates an empty vector of integersعام آپریشنز:
- اختتام میں شامل کریں:
.push_back(value)طریقہ ویکٹر کے آخر میں ایک عنصر داخل کرتا ہے، اگر ضرورت ہو تو خود بخود میموری کو دوبارہ مختص کرتا ہے۔ - سائز:
.size()طریقہ ویکٹر میں موجود عناصر کی تعداد لوٹاتا ہے۔ - محفوظ رسائی:
[]آپریٹر کے علاوہ، آپ.at(index)طریقہ استعمال کر سکتے ہیں (جیسے،numbers.at(0))، جو انڈیکس حد سے باہر ہونے کی صورت میں ایک استثناء دیتا ہے۔
std::vector<int> scores = {90, 85};
scores.push_back(95); // scores now contains {90, 85, 95}
std::cout << scores.size(); // Prints 3خود ہی آزمائیں۔
اعداد کے نام والے عدد کے std:: ویکٹر کا اعلان کریں۔ .push_back() طریقہ استعمال کرتے ہوئے اس کے اندر 10، 20 اور 30 کی قدریں شامل کریں، پھر numbers.size() کا استعمال کرکے اس کا سائز پرنٹ کریں۔
اشارہ دکھائیں۔
ویکٹر کا اعلان `std::vector<int> numbers;`کے ساتھ کریں، تین نمبروں کو`.push_back(value)`کے ساتھ داخل کریں، اور اسے`std::cout << numbers.size();` کے ساتھ پرنٹ کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
بنیادی طور پر، 5 عناصر کی ایک درجہ بندی کی وضاحت کی گئی ہے۔ صف میں موجود تمام عناصر کے مجموعے کا حساب لگانے کے لیے ایک for loop لکھیں، اسے متغیر رقم میں ذخیرہ کریں، اور std::cout کا استعمال کرتے ہوئے اسے پرنٹ کریں۔
اشارہ دکھائیں۔
ایک `فور (int i = 0; i < 5; ++i)`لوپ کا استعمال کریں اور لوپ کے اندر ہر عنصر کو`sum += گریڈز[i];` کے ساتھ جمع کریں۔
3 کوششوں کے بعد حل دستیاب ہے۔
C++ میں std::vector کے آخر میں عنصر کو جوڑنے کا صحیح طریقہ کیا ہے؟
std::vector<int> numbers; // come aggiungere il valore 50?