gpt4 book ai didi

c++ - 获取模板错误。 'T"未在此范围内声明

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:06 27 4
gpt4 key购买 nike

<分区>

我只是在练习使用模板的 bst 程序。下面是程序。

template<class T>
class bstnode
{
public:
T key;
bstnode *left, *right;
bstnode()
{
left=right=0;
}
bstnode(const T& el, bstnode *l=0, bstnode *r=0)
{
key=el;
left=l;
right=r;
}
};

template<class T>
class bst
{
protected:
bstnode<T>* root;
public:
bst()
{
root=0;
}
void insert(T);
void display();
void inorder(bstnode<T> *);
};

void inorder(bstnode <T>* b1) //ERROR 'T' was not declared in scope
{
if(b1)
{
cout<<b1->key;
}
else
{
return;
}
inorder(b1->right);
inorder(b1->left);
}

template<class T>
void bst<T>::display()
{
//bstnode<T> * b=new bstnode<T>();
//b=root;
inorder(root);
}

template<class T>
void bst<T>::insert(T v)
{
bstnode<T>* b=new bstnode<T>();
b->key=v;
if(root==NULL)
{
root=b;
}
else
{
bstnode<T>* temp=root;
while((temp->left!=NULL)||(temp->right!=NULL))
{
if(temp->key > b->key)
{
temp=temp->right;
}
else
{
temp=temp->left;
}
}
if(temp->key < b->key)
{
temp->left=b;
}
else
{
temp->right=b;
}
}
}

int main(int argc, char *argv[])
{
bst<int>b;
b.insert(10);
b.insert(5);
b.insert(2);
return 0;
}

在编译期间,我收到错误“T”未在 inorder 函数的范围内声明。

请帮我解决这个问题。

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