কম্পিউটার টিউটোরিয়াল

সি++ প্রোগ্রামে ইটেরেটর ইনভ্যালিডেশন (Iterator Invalidation in C++ program)


এই টিউটোরিয়ালে, আমরা সি++-এ ইটেরেটর ইনভ্যালিডেশন সম্পর্কে আলোচনা করব।

কন্টেইনার অবজেক্টের এলিমেন্টগুলোতে ইটারেট করার সময়, иногда এটি ইনভ্যালিড হয়ে যেতে পারে যদি বাউন্ড চেক প্রয়োগ না করা হয়। এটি মূলত কন্টেইনারের আকৃতি ও আকার পরিবর্তনের কারণে ঘটে।

উদাহরণ

#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

(নতুন এলিমেন্ট যোগ করার জন্য ভেক্টর নতুন লোকেশনে কপি হতে পারে, যেখানে আমাদের ইটেরেটর পুরনো লোকেশনে পয়েন্ট করছে এবং এরর দেবে।)


  1. C++-এ ইটেরেটর ইনভ্যালিডেশন (Iterator Invalidation)

  2. C++-এ ভেক্টর সর্ট করা (Sorting a vector in C++)

  3. C++ STL-এ Vector বাস্তবায়ন: ডাইনামিক অ্যারে ব্যবহার

  4. C++ প্রোগ্রাম: ভেক্টর ইমপ্লিমেন্টেশন