首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在函数模板中创建一个包含迭代器

在函数模板中创建一个包含迭代器的类,可以使用C++的迭代器模板库。迭代器是一种可以遍历容器中元素的对象,它可以指向容器中的一个元素,并且可以通过操作符重载来实现对元素的访问和操作。

以下是一个简单的示例代码,演示如何在函数模板中创建一个包含迭代器的类:

代码语言:c++
复制
#include<iostream>
#include<iterator>

template<typename T>
class MyContainer {
public:
    MyContainer(T* data, size_t size) : data_(data), size_(size) {}

    class iterator : public std::iterator<std::input_iterator_tag, T> {
    public:
        iterator(T* ptr) : ptr_(ptr) {}

        iterator& operator++() {
            ++ptr_;
            return *this;
        }

        bool operator==(const iterator& other) const {
            return ptr_ == other.ptr_;
        }

        bool operator!=(const iterator& other) const {
            return ptr_ != other.ptr_;
        }

        T& operator*() {
            return *ptr_;
        }

    private:
        T* ptr_;
    };

    iterator begin() {
        return iterator(data_);
    }

    iterator end() {
        return iterator(data_ + size_);
    }

private:
    T* data_;
    size_t size_;
};

int main() {
    int data[] = {1, 2, 3, 4, 5};
    MyContainer<int> container(data, 5);

    for (auto it = container.begin(); it != container.end(); ++it) {
        std::cout << *it << " ";
    }

    return 0;
}

在这个示例代码中,我们定义了一个名为MyContainer的模板类,它包含一个迭代器类iteratoriterator类继承自std::iterator模板类,并且实现了operator++operator==operator!=operator*等操作符重载,以实现对容器中元素的访问和操作。

MyContainer类的beginend成员函数返回迭代器对象,可以用于遍历容器中的元素。在main函数中,我们创建了一个MyContainer对象,并使用迭代器遍历其中的元素。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的合辑

领券