gpt4 book ai didi

自定义模板类的 C++ 迭代器

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:36:01 26 4
gpt4 key购买 nike

我在自定义堆栈模板类中嵌套了迭代器。我现在遇到的问题是,当我在 main 中为我的堆栈创建迭代器时,我的嵌套迭代器的构造函数不匹配。我想知道可能是什么问题。

template <class T>
class stack
{
private:
int top;
T st[100];

public:
class my_iterator
{
public:
my_iterator() : list(0), curr(0) {};

private:

stack<T> list;
int curr;
};

//publics in stack class
public:
stack();
void push(T i);
T pop();
void print();
bool is_full();
my_iterator begin() {};

};

然后我在 main 中使用以下行为堆栈创建迭代器

stack<double>::my_iterator it;

最佳答案

您似乎忘记了一个*:

class my_iterator
{
public:
my_iterator() : list(0), curr(0) {};
private:
stack<T>* pStack; // Pointer to a stack.
int curr;
};

当然,你需要更多的类成员(包括更好的构造函数)。但这至少应该允许您创建不特别指向任何堆栈的默认迭代器。

关于自定义模板类的 C++ 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4334337/

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