中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

如何實現C++中的自定義迭代器

c++
小億
98
2024-04-22 14:28:50
欄目: 編程語言

要實現C++中的自定義迭代器,你需要定義一個類來代表這個迭代器,并在這個類中重載一系列操作符來實現迭代器的功能。以下是一個簡單的示例:

#include <iostream>

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 類型的迭代器,并使用它來遍歷一個整型數組。實現自定義迭代器可以讓你更靈活地操作容器或數據結構,以適應不同的需求和場景。

0
惠安县| 东乌珠穆沁旗| 华坪县| 喀喇沁旗| 开鲁县| 万荣县| 顺平县| 安多县| 秭归县| 南投县| 利津县| 临猗县| 泗洪县| 汤原县| 罗田县| 当阳市| 新邵县| 河南省| 吴江市| 鄄城县| 平陆县| 阿坝| 水城县| 东乡县| 凤凰县| 南昌市| 牙克石市| 闻喜县| 沅陵县| 永清县| 井冈山市| 乡宁县| 沂源县| 治多县| 胶州市| 筠连县| 巴林右旗| 乐安县| 泌阳县| 乌什县| 阳高县|