এই টিউটোরিয়ালে, আমরা সি++-এ ইটেরেটর ইনভ্যালিডেশন সম্পর্কে আলোচনা করব।
কন্টেইনার অবজেক্টের এলিমেন্টগুলোতে ইটারেট করার সময়, иногда এটি ইনভ্যালিড হয়ে যেতে পারে যদি বাউন্ড চেক প্রয়োগ না করা হয়। এটি মূলত কন্টেইনারের আকৃতি ও আকার পরিবর্তনের কারণে ঘটে।
উদাহরণ
#include <bits/stdc++.h> using namespace std; int main() { // একটি ভেক্টর ডিক্লেয়ার vector <int> v{1, 5, 10, 15, 20}; // এক্সিকিউশন সময় ভেক্টর পরিবর্তন // যা বাউন্ড ইনভ্যালিডেশন সৃষ্টি করবে for (auto it=v.begin();it!=v.end();it++) if ((*it) == 5) v.push_back(-1); for (auto it=v.begin();it!=v.end();it++) cout << (*it) << " "; return 0; }আউটপুট
1 5 10 15 20 -1 -1
(নতুন এলিমেন্ট যোগ করার জন্য ভেক্টর নতুন লোকেশনে কপি হতে পারে, যেখানে আমাদের ইটেরেটর পুরনো লোকেশনে পয়েন্ট করছে এবং এরর দেবে।)