如何实现C++中的自定义迭代器

avatar
作者
筋斗云
阅读量:0

要实现C++中的自定义迭代器,你需要定义一个类来代表这个迭代器,并在这个类中重载一系列操作符来实现迭代器的功能。以下是一个简单的示例:

#include   template <typename T> class CustomIterator { private:     T* ptr; public:     CustomIterator(T* p) : ptr(p) {}      T& operator*() {         return *ptr;     }      CustomIterator& operator++() {         ++ptr;         return *this;     }      CustomIterator operator++(int) {         CustomIterator tmp = *this;         ++ptr;         return tmp;     }      bool operator==(const CustomIterator& other) const {         return ptr == other.ptr;     }      bool operator!=(const CustomIterator& other) const {         return ptr != other.ptr;     } };  int main() {     int arr[] = {1, 2, 3, 4, 5};     CustomIterator<int> begin(arr);     CustomIterator<int> end(arr + 5);      for (CustomIterator<int> it = begin; it != end; it++) {         std::cout << *it << " ";     }      return 0; } 

在上面的示例中,我们定义了一个名为 CustomIterator 的类,它接受一个指向模板类型 T 的指针作为构造函数的参数。我们重载了 * 操作符来返回迭代器指向的元素,重载了 ++ 操作符来实现迭代器的移动,重载了 ==!= 操作符来实现迭代器的比较。

main 函数中,我们创建了一个 CustomIterator 类型的迭代器,并使用它来遍历一个整型数组。实现自定义迭代器可以让你更灵活地操作容器或数据结构,以适应不同的需求和场景。

    广告一刻

    为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!