gpt4 book ai didi

c++ - 如何实现列表::迭代器?

转载 作者:行者123 更新时间:2023-11-28 01:45:19 25 4
gpt4 key购买 nike

我知道如何实现模板类。
但是,我不明白下面的list<int>::iterator在内部实现。我应该创建一个命名空间吗?
(基本上我想对自定义实现使用相同的 STL 语法。)

list<int> l;
list<int>::iterator it = l.begin();

简而言之,在没有任何 STL 库的情况下让代码运行的最简单方法是什么?

这是自定义列表实现的一个片段:(为了便于阅读,我省略了大部分方法。)

template <typename T>
struct list {
struct listNode {
listNode() : item(0), next(0) {}
listNode(T x) : item(x), next(0) {}
T item;
listNode* next;
};
list() : head(0),tail(0) {}
listNode* head;
listNode* tail;
};

最佳答案

您可以在容器类型中实现迭代器类型,以便它具有有关它正在迭代的容器的任何信息。

template<class T>
class SomeContainer {

public:

class Iterator {
// You can use SomeContainer and T in here.
};
};

关于c++ - 如何实现列表<T>::迭代器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45395698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com