ইটারেটর (Iterator) হলো C++ স্ট্যান্ডার্ড টেমপ্লেট লাইব্রেরি (STL) এর একটি উপাদান, যা কনটেইনারের উপাদানগুলোতে ধারাবাহিকভাবে অ্যাক্সেস করতে ব্যবহৃত হয়। ইটারেটরকে এক প্রকার "পয়েন্টার" বলা যেতে পারে, যা কনটেইনারের প্রতিটি উপাদানের ঠিকানাকে নির্দেশ করে এবং উপাদানগুলোতে লুপ চালাতে সাহায্য করে।
STL এ বিভিন্ন প্রকারের ইটারেটর রয়েছে, যেগুলো বিভিন্ন ধরনের কনটেইনারের উপাদানগুলোতে বিভিন্নভাবে অ্যাক্সেস করতে ব্যবহৃত হয়:
list
, set
, map
এর জন্য ব্যবহৃত হয়।vector
, deque
, array
এর জন্য ব্যবহৃত হয়।vector
কনটেইনারের উপাদান অ্যাক্সেস করা#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> numbers = {10, 20, 30, 40, 50};
// ইটারেটর ঘোষণা করা
vector<int>::iterator it;
// ইটারেটর ব্যবহার করে উপাদান প্রিন্ট করা
for (it = numbers.begin(); it != numbers.end(); ++it) {
cout << *it << " ";
}
return 0;
}
বর্ণনা:
vector<int>::iterator
ব্যবহার করে it
নামে একটি ইটারেটর তৈরি করা হয়েছে, যা numbers
ভেক্টরের প্রতিটি উপাদানে লুপ চালাতে সাহায্য করে।*it
দ্বারা প্রতিটি উপাদানের মান অ্যাক্সেস করা হয়েছে।আউটপুট:
10 20 30 40 50
ইটারেটর ব্যবহার করে শুধু কনটেইনারের উপাদান পড়া নয়, উপাদানে মান লিখাও সম্ভব। নিচে একটি উদাহরণ দেওয়া হলো।
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> numbers = {10, 20, 30, 40, 50};
// প্রতিটি উপাদান দ্বিগুণ করা
for (auto it = numbers.begin(); it != numbers.end(); ++it) {
*it *= 2;
}
// পরিবর্তিত মান প্রিন্ট করা
for (int num : numbers) {
cout << num << " ";
}
return 0;
}
আউটপুট:
20 40 60 80 100
বর্ণনা:
it
ইটারেটর ব্যবহার করে প্রতিটি উপাদানের মান দ্বিগুণ করা হয়েছে এবং পরিবর্তিত ভেক্টরের মান প্রিন্ট করা হয়েছে।#include <iostream>
#include <list>
#include <vector>
using namespace std;
int main() {
list<int> numList = {10, 20, 30, 40, 50};
vector<int> numVector = {5, 15, 25, 35, 45};
// bidirectional iterator - list এর জন্য
auto itList = numList.begin();
++itList;
cout << "Second element in list: " << *itList << endl;
// random access iterator - vector এর জন্য
auto itVector = numVector.begin();
itVector += 2; // তৃতীয় উপাদানে সরানো
cout << "Third element in vector: " << *itVector << endl;
return 0;
}
আউটপুট:
Second element in list: 20
Third element in vector: 25
বর্ণনা:
list
এবং vector
কনটেইনারের জন্য যথাক্রমে bidirectional এবং random access ইটারেটর ব্যবহার করা হয়েছে।numList
এ ++itList
ব্যবহার করে দ্বিতীয় উপাদানে পৌঁছানো হয়েছে এবং numVector
এ itVector += 2
ব্যবহার করে তৃতীয় উপাদানে পৌঁছানো হয়েছে।begin()
এবং end()
এর মাধ্যমে কনটেইনারের শুরু এবং শেষ চিহ্নিত করে।C++ এ ইটারেটর প্রোগ্রামিংকে আরো সহজ ও কার্যকর করে তোলে এবং কনটেইনারের উপাদানগুলির উপর নির্ভরশীল অপারেশনগুলোতে সুবিধা প্রদান করে।
common.read_more