How do I write custom iterators in C++?

Custom iterators in C++ enable you to define how to traverse your own data structures. This can be useful for collections or classes that require a specific iteration behavior. Below is a simple example of creating a custom iterator for a container class.

#include <iostream> #include <iterator> #include <vector> class MyContainer { public: using iterator = std::vector<int>::iterator; void add(int value) { data.push_back(value); } iterator begin() { return data.begin(); } iterator end() { return data.end(); } private: std::vector<int> data; }; int main() { MyContainer container; container.add(1); container.add(2); container.add(3); for (auto it = container.begin(); it != container.end(); ++it) { std::cout << *it << std::endl; } return 0; }

custom iterators C++ iterator C++ iterators C++ containers