Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Iterator Invalidation in C++ program
In this tutorial, we will be discussing a program to understand iterator invalidation in C++.
While iterating over the elements of a container object, sometimes it can become invalidated if we don’t apply bound checks. This mainly occurs due to the change in the shape and size of the container object.
Example
#include <bits/stdc++.h>
using namespace std;
int main() {
//declaring a vector
vector <int> v{1, 5, 10, 15, 20};
//changing vector during execution
//which will cause bound invalidation
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;
}
Output
1 5 10 15 20 -1 -1
(It may also happen that to add the new element, the vector gets copied to a new location with our iterator still pointing to the old one which will then give an error.)
Advertisements