C++ এ অটোর জন্য

C E Atora Jan Ya



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' লুপ ব্যবহার করি এবং এর ভিতরে 'অটো' কীওয়ার্ড রাখি। এর পরে, আমরা 'অটো' কীওয়ার্ড সহ 'my_it' নামের একটি পুনরাবৃত্ত শুরু করি এবং 'begin()' ফাংশনের সাথে এটিতে 'myString' বরাদ্দ করি।



তারপর, আমরা একটি শর্ত রাখি যা 'my_it' 'myString.end()' এর সমান নয় এবং 'my_it++' ব্যবহার করে পুনরাবৃত্তিকারীর মান বৃদ্ধি করি। এর পরে, আমরা '*my_it' কে 'cout' এ রাখি। এখন, এটি বর্ণমালার ক্রম অনুসারে ফলের নাম প্রিন্ট করে, এবং আমরা এখানে 'অটো' কীওয়ার্ডটি স্থাপন করার সাথে সাথে ডেটা টাইপ স্বয়ংক্রিয়ভাবে সনাক্ত করা হয়।

কোড 2:

#include
ব্যবহার নামস্থান std ;
int প্রধান ( )
{
সেট < স্ট্রিং > myString ;
myString. সন্নিবেশ ( { 'আঙ্গুর' , 'কমলা' , 'কলা' , 'নাশপাতি' , 'আপেল' } ) ;
জন্য ( স্বয়ংক্রিয় আমার_এটি = myString. শুরু ( ) ; আমার_এটি ! = myString. শেষ ( ) ; আমার_এটি ++ )
cout << * আমার_এটি << '' ;

ফিরে 0 ;
}

আউটপুট:
এখানে, আমরা লক্ষ্য করতে পারি যে ফলের নামগুলি একটি বর্ণানুক্রমিক ক্রমে প্রদর্শিত হয়। সমস্ত ডেটা এখানে রেন্ডার করা হয়েছে যা আমরা স্ট্রিং সেটে সন্নিবেশিত করেছি কারণ আমরা পূর্ববর্তী কোডে 'ফর' এবং 'অটো' ব্যবহার করেছি।

উদাহরণ 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 ;
}

আউটপুট :
পূর্ণসংখ্যাগুলি এখানে ক্রমবর্ধমান ক্রমানুসারে দেখানো হয়েছে যেমনটি নীচে দেখা হয়েছে। যেহেতু আমরা পূর্ববর্তী কোডে 'ফর' এবং 'অটো' শব্দগুলি ব্যবহার করেছি, তাই আমরা পূর্ণসংখ্যা সেটে যে সমস্ত ডেটা রেখেছিলাম তা এখানে রেন্ডার করা হয়েছে।

উদাহরণ 4:

'iostream' এবং 'ভেক্টর' হেডার ফাইলগুলি অন্তর্ভুক্ত করা হয়েছে কারণ আমরা এখানে ভেক্টরগুলির সাথে কাজ করি। তারপর 'std' নামস্থান যোগ করা হয় এবং তারপরে আমরা 'main()' বলি। তারপর, আমরা 'myVectorV1' নাম দিয়ে 'int' ডেটা টাইপের একটি ভেক্টর শুরু করি এবং এই ভেক্টরে কিছু মান যোগ করি। এখন, আমরা 'for' লুপ রাখি এবং ডেটা টাইপ সনাক্ত করতে এখানে 'অটো' ব্যবহার করি। আমরা ভেক্টরের মান দ্বারা অ্যাক্সেস করি এবং তারপর 'cout' এ 'valueOfVector' বসিয়ে সেগুলি প্রিন্ট করি।

এর পরে, আমরা এর ভিতরে আরেকটি 'for' এবং 'অটো' রাখি এবং এটিকে '&& valueOfVector : myVectorV1' দিয়ে আরম্ভ করি। এখানে, আমরা রেফারেন্স দ্বারা অ্যাক্সেস করি এবং তারপর 'cout' এ 'valueOfVector' বসিয়ে সমস্ত মান প্রিন্ট করি। এখন, আমাদের উভয় লুপের জন্য ডেটা টাইপ প্রবেশ করাতে হবে না কারণ আমরা লুপের ভিতরে 'অটো' কীওয়ার্ড ব্যবহার করি।

কোড 4:

# অন্তর্ভুক্ত করুন
# অন্তর্ভুক্ত <ভেক্টর>
ব্যবহার নামস্থান std ;
int প্রধান ( ) {
ভেক্টর < int > myVectorV1 = { 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 } ;
জন্য ( স্বয়ংক্রিয় valueOfVector : myVectorV1 )
cout << valueOfVector << ' ;
cout << endl ;
জন্য ( স্বয়ংক্রিয় && valueOfVector : myVectorV1 )
cout << valueOfVector << ' ;
cout << endl ;
ফিরে 0 ;
}

আউটপুট:
ভেক্টরের সমস্ত ডেটা প্রদর্শিত হয়। প্রথম লাইনে যে সংখ্যাগুলি প্রদর্শিত হয় সেগুলি হল সেইগুলি যেগুলি আমরা মান দ্বারা অ্যাক্সেস করেছি এবং দ্বিতীয় লাইনে প্রদর্শিত সংখ্যাগুলি হল সেইগুলি যা আমরা কোডের রেফারেন্স দ্বারা অ্যাক্সেস করেছি৷

উদাহরণ 5:

এই কোডে 'main()' মেথড কল করার পর, আমরা দুটি অ্যারে শুরু করি যেটি '7' সাইজের 'myFirstArray' যার 'int' ডাটা টাইপ এবং 'mySecondArray' সাইজ 'ডবল' এর '7' সহ। ডেটা টাইপ। আমরা উভয় অ্যারেতে মান সন্নিবেশ করি। প্রথম অ্যারেতে, আমরা 'পূর্ণসংখ্যা' মান সন্নিবেশ করি। দ্বিতীয় অ্যারেতে, আমরা 'ডবল' মান যোগ করি। এর পরে, আমরা 'for' ব্যবহার করি এবং এই লুপে 'অটো' সন্নিবেশ করি।

এখানে, আমরা 'myFirstArray' এর জন্য একটি 'রেঞ্জ বেস ফর' লুপ ব্যবহার করি। তারপর, আমরা 'cout' এ 'myVar' রাখি। এর নিচে, আমরা আবার একটি লুপ রাখি এবং 'রেঞ্জ বেস ফর' লুপ ব্যবহার করি। এই লুপটি 'mySecondArray' এর জন্য এবং তারপরে আমরা সেই অ্যারের মানগুলিও প্রিন্ট করি।

কোড 5:

# অন্তর্ভুক্ত করুন
ব্যবহার নামস্থান std ;
int প্রধান ( )
{
int myFirstArray [ 7 ] = { পনের , 25 , 35 , চার পাঁচ , 55 , 65 , 75 } ;
দ্বিগুণ mySecondArray [ 7 ] = { 2.64 , ৬.৪৫ , 8.5 , 2.5 , 4.5 , ৬.৭ , ৮.৯ } ;
জন্য ( const স্বয়ংক্রিয় এবং myVar : myFirstArray )
{
cout << myVar << '' ;
}
cout << endl ;
জন্য ( const স্বয়ংক্রিয় এবং myVar : mySecondArray )
{
cout << myVar << '' ;
}
ফিরে 0 ;
}

আউটপুট:
উভয় ভেক্টরের সমস্ত ডেটা এখানে এই ফলাফলে প্রদর্শিত হয়।

উপসংহার

'অটোর জন্য' ধারণাটি এই নিবন্ধে পুঙ্খানুপুঙ্খভাবে অধ্যয়ন করা হয়েছে। আমরা ব্যাখ্যা করেছি যে 'অটো' এটি উল্লেখ না করেই ডেটা টাইপ সনাক্ত করে৷ আমরা এই নিবন্ধে একাধিক উদাহরণ অন্বেষণ করেছি এবং এখানে কোড ব্যাখ্যাও প্রদান করেছি। আমরা এই নিবন্ধে 'অটোর জন্য' ধারণাটির কাজটি গভীরভাবে ব্যাখ্যা করেছি।