C++ میں آٹو کے لیے

C My A W K Ly



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

مثال 1:

'iostream' یہاں کی پہلی ہیڈر فائل ہے جہاں C++ کے افعال کا اعلان کیا گیا ہے۔ پھر، ہم 'ویکٹر' ہیڈر فائل شامل کرتے ہیں جو یہاں شامل ہے تاکہ ہم ویکٹر کے ساتھ کام کر سکیں اور ویکٹر پر کام کر سکیں۔ پھر، 'std' نام کی جگہ ہے جسے ہم یہاں داخل کرتے ہیں، لہذا ہمیں اس 'std' کو اس کوڈ میں انفرادی طور پر تمام فنکشنز کے ساتھ ڈالنے کی ضرورت نہیں ہے۔ پھر، 'main()' کو یہاں پکارا جاتا ہے۔ اس کے نیچے، ہم 'myNewData' نام کے ساتھ 'int' ڈیٹا کی قسم کا ایک ویکٹر بناتے ہیں اور اس میں کچھ عددی اقدار داخل کرتے ہیں۔

اس کے بعد، ہم 'for' لوپ رکھتے ہیں اور اس کے اندر اس 'آٹو' کی ورڈ کو استعمال کرتے ہیں۔ اب، یہ تکرار کرنے والا یہاں کی قدروں کی ڈیٹا قسم کا پتہ لگائے گا۔ ہم 'myNewData' ویکٹر کی قدریں حاصل کرتے ہیں اور انہیں 'data' متغیر میں محفوظ کرتے ہیں اور انہیں یہاں بھی ڈسپلے کرتے ہیں جیسا کہ ہم 'cout' میں اس 'ڈیٹا' کو شامل کرتے ہیں۔







کوڈ 1:



# شامل کریں
#شامل <ویکٹر>
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( ) {
ویکٹر < int > myNewData { گیارہ ، 22 ، 33 ، 44 ، 55 ، 66 } ;
کے لیے ( آٹو ڈیٹا : myNewData ) {
cout << ڈیٹا << endl ;
}
}

آؤٹ پٹ :
ہم نے اس ویکٹر کی تمام اقدار دیکھی ہیں جو یہاں پرنٹ کی گئی ہیں۔ ہم 'for' لوپ کو استعمال کرکے اور اس کے اندر 'آٹو' کی ورڈ رکھ کر ان اقدار کو پرنٹ کرتے ہیں۔







مثال 2:

یہاں، ہم 'bits/stdc++.h' کو شامل کرتے ہیں کیونکہ اس میں تمام فنکشن ڈیکلریشن ہوتے ہیں۔ پھر، ہم یہاں 'std' نام کی جگہ ڈالتے ہیں اور پھر 'main()' کو پکارتے ہیں۔ اس کے نیچے، ہم 'سٹرنگ' کا ایک 'سیٹ' شروع کرتے ہیں اور اسے 'myString' کا نام دیتے ہیں۔ پھر، اگلی لائن میں، ہم اس میں سٹرنگ ڈیٹا داخل کرتے ہیں۔ ہم 'insert()' طریقہ استعمال کرتے ہوئے اس سیٹ میں پھلوں کے کچھ نام ڈالتے ہیں۔

ہم اس کے نیچے 'for' لوپ استعمال کرتے ہیں اور اس کے اندر 'auto' کی ورڈ رکھ دیتے ہیں۔ اس کے بعد، ہم 'my_it' نام کے ساتھ 'auto' کلیدی لفظ کے ساتھ ایک تکرار کرنے والے کو شروع کرتے ہیں اور 'begin()' فنکشن کے ساتھ اس کے لیے 'myString' تفویض کرتے ہیں۔



اس کے بعد، ہم ایک ایسی شرط لگاتے ہیں جو 'my_it' 'myString.end()' کے برابر نہیں ہوتی اور 'my_it++' کا استعمال کرتے ہوئے تکرار کرنے والے کی قدر میں اضافہ کرتے ہیں۔ اس کے بعد، ہم '*my_it' کو 'cout' میں رکھتے ہیں۔ اب، یہ پھلوں کے ناموں کو حروف تہجی کی ترتیب کے مطابق پرنٹ کرتا ہے، اور ڈیٹا کی قسم خود بخود پتہ چل جاتی ہے جیسا کہ ہم نے یہاں 'auto' کلیدی لفظ رکھا ہے۔

کوڈ 2:

#include
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
سیٹ < تار > myString ;
myString. داخل کریں ( { 'انگور' ، 'کینو' ، 'کیلا' ، 'ناشپاتی' ، 'سیب' } ) ;
کے لیے ( آٹو میرا_یہ = myString. شروع ( ) ; میرا_یہ ! = myString. اختتام ( ) ; میرا_یہ ++ )
cout << * میرا_یہ << ' ;

واپسی 0 ;
}

آؤٹ پٹ:
یہاں، ہم دیکھ سکتے ہیں کہ پھلوں کے نام حروف تہجی کی ترتیب میں دکھائے گئے ہیں۔ تمام ڈیٹا یہاں پیش کیا گیا ہے جسے ہم نے سٹرنگ سیٹ میں داخل کیا ہے کیونکہ ہم نے پچھلے کوڈ میں 'for' اور 'auto' کا استعمال کیا ہے۔

مثال 3:

چونکہ 'bits/stdc++.h' میں پہلے سے ہی تمام فنکشن ڈیکلریشن موجود ہیں، ہم اسے یہاں شامل کرتے ہیں۔ 'std' نام کی جگہ شامل کرنے کے بعد، ہم اس مقام سے 'main()' کو کال کرتے ہیں۔ 'int' کا 'سیٹ' جو ہم نے درج ذیل میں قائم کیا ہے اسے 'myIntegers' کہتے ہیں۔ پھر، ہم انٹیجر ڈیٹا کو اس کے بعد والی لائن میں شامل کرتے ہیں۔ اس فہرست میں چند عدد کو شامل کرنے کے لیے ہم 'insert()' طریقہ استعمال کرتے ہیں۔ 'آٹو' کلیدی لفظ اب 'فور' لوپ میں داخل کیا گیا ہے جو اس کے نیچے استعمال ہوتا ہے۔

اس کے بعد، ہم 'آٹو' کلیدی لفظ کا استعمال کرتے ہوئے ایک تکرار کنندہ کو 'new_it' کے نام سے شروع کرتے ہیں، اسے 'myIntegers' اور 'begin()' فنکشنز تفویض کرتے ہیں۔ اس کے بعد، ہم نے ایک شرط قائم کی جس میں کہا گیا ہے کہ 'my_it' 'myIntegers.end()' کے برابر نہیں ہونا چاہیے اور تکرار کرنے والے کی قدر بڑھانے کے لیے 'new_it++' کا استعمال کریں۔ اگلا، ہم اس 'cout' سیکشن میں '*new_it' داخل کرتے ہیں۔ یہ عدد کو صعودی طور پر پرنٹ کرتا ہے۔ جیسے ہی 'آٹو' کلیدی لفظ داخل ہوتا ہے، یہ خود بخود ڈیٹا کی قسم کا پتہ لگاتا ہے۔

کوڈ 3:

#include
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
سیٹ < int > myIntegers ;
myIntegers. داخل کریں ( { چار پانچ ، 31 ، 87 ، 14 ، 97 ، اکیس ، 55 } ) ;
کے لیے ( آٹو نیا_یہ = myIntegers. شروع ( ) ; نیا_یہ ! = myIntegers. اختتام ( ) ; نیا_یہ ++ )
cout << * نیا_یہ << ' ;

واپسی 0 ;
}

آؤٹ پٹ :
انٹیجرز کو یہاں صعودی ترتیب میں دکھایا گیا ہے جیسا کہ درج ذیل میں دیکھا گیا ہے۔ چونکہ ہم نے پچھلے کوڈ میں 'for' اور 'auto' کی اصطلاحات استعمال کی ہیں، اس لیے وہ تمام ڈیٹا جو ہم نے انٹیجر سیٹ میں رکھا ہے یہاں پیش کیا گیا ہے۔

مثال 4:

'iostream' اور 'ویکٹر' ہیڈر فائلیں شامل ہیں کیونکہ ہم یہاں ویکٹر کے ساتھ کام کرتے ہیں۔ اس کے بعد 'std' نام کی جگہ شامل کی جاتی ہے اور پھر ہم 'main()' کہتے ہیں۔ پھر، ہم 'int' ڈیٹا ٹائپ کے ایک ویکٹر کو 'myVectorV1' کے نام سے شروع کرتے ہیں اور اس ویکٹر میں کچھ قدریں شامل کرتے ہیں۔ اب، ہم 'for' لوپ رکھتے ہیں اور ڈیٹا کی قسم کا پتہ لگانے کے لیے یہاں 'auto' کا استعمال کرتے ہیں۔ ہم ویکٹر کی اقدار تک رسائی حاصل کرتے ہیں اور پھر 'cout' میں 'valueOfVector' رکھ کر پرنٹ کرتے ہیں۔

اس کے بعد، ہم اس کے اندر ایک اور 'for' اور 'auto' رکھتے ہیں اور اسے '&& valueOfVector: myVectorV1' سے شروع کرتے ہیں۔ یہاں، ہم حوالہ کے ذریعے رسائی حاصل کرتے ہیں اور پھر 'cout' میں 'valueOfVector' ڈال کر تمام اقدار پرنٹ کرتے ہیں۔ اب، ہمیں دونوں لوپس کے لیے ڈیٹا ٹائپ داخل کرنے کی ضرورت نہیں ہے کیونکہ ہم لوپ کے اندر 'آٹو' کلیدی لفظ استعمال کرتے ہیں۔

کوڈ 4:

# شامل کریں
#شامل <ویکٹر>
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( ) {
ویکٹر < int > myVectorV1 = { 0 ، 1 ، 2 ، 3 ، 4 ، 5 ، 6 ، 7 ، 8 ، 9 ، 10 } ;
کے لیے ( آٹو ویلیو آف ویکٹر : myVectorV1 )
cout << ویلیو آف ویکٹر << '' ;
cout << endl ;
کے لیے ( آٹو && ویلیو آف ویکٹر : myVectorV1 )
cout << ویلیو آف ویکٹر << '' ;
cout << endl ;
واپسی 0 ;
}

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

مثال 5:

اس کوڈ میں 'مین()' طریقہ کو کال کرنے کے بعد، ہم دو صفوں کو شروع کرتے ہیں جو '7' کے سائز کے 'myFirstArray' کے ساتھ 'int' ڈیٹا کی قسم اور 'mySecondArray' 'ڈبل' کے سائز '7' کے ساتھ ہیں۔ ڈیٹا کی قسم. ہم دونوں صفوں میں قدریں داخل کرتے ہیں۔ پہلی صف میں، ہم 'انٹیجر' ویلیوز داخل کرتے ہیں۔ دوسری صف میں، ہم 'ڈبل' قدریں شامل کرتے ہیں۔ اس کے بعد، ہم 'for' کا استعمال کرتے ہیں اور اس لوپ میں 'auto' داخل کرتے ہیں۔

یہاں، ہم 'myFirstArray' کے لیے 'range base for' لوپ استعمال کرتے ہیں۔ پھر، ہم 'myVar' کو 'cout' میں رکھتے ہیں۔ اس کے نیچے، ہم دوبارہ ایک لوپ رکھتے ہیں اور 'رینج بیس فار' لوپ کا استعمال کرتے ہیں۔ یہ لوپ 'mySecondArray' کے لیے ہے اور پھر ہم اس ارے کی ویلیوز بھی پرنٹ کرتے ہیں۔

کوڈ 5:

# شامل کریں
استعمال کرتے ہوئے نام کی جگہ std ;
int مرکزی ( )
{
int myFirstArray [ 7 ] = { پندرہ ، 25 ، 35 ، چار پانچ ، 55 ، 65 ، 75 } ;
دگنا mySecondArray [ 7 ] = { 2.64 ، 6.45 ، 8.5 ، 2.5 ، 4.5 ، 6.7 ، 8.9 } ;
کے لیے ( const آٹو اور myVar : myFirstArray )
{
cout << myVar << ' ;
}
cout << endl ;
کے لیے ( const آٹو اور myVar : mySecondArray )
{
cout << myVar << ' ;
}
واپسی 0 ;
}

آؤٹ پٹ:
دونوں ویکٹرز کا تمام ڈیٹا اس نتیجہ میں یہاں دکھایا گیا ہے۔

نتیجہ

اس مضمون میں 'آٹو کے لیے' تصور کا اچھی طرح سے مطالعہ کیا گیا ہے۔ ہم نے وضاحت کی کہ 'آٹو' ڈیٹا کی قسم کا ذکر کیے بغیر پتہ لگاتا ہے۔ ہم نے اس مضمون میں متعدد مثالیں تلاش کیں اور یہاں کوڈ کی وضاحت بھی فراہم کی۔ ہم نے اس مضمون میں اس 'آٹو کے لیے' تصور کے کام کرنے کی گہرائی سے وضاحت کی ہے۔