Invalid user conversion from char 错误(使用堆栈转换后缀)
Invalid user conversion from char error (converting postfix using stack)
我目前正在从事一个项目,使用通过链表实现的堆栈从后缀转换为中缀。我试图接受一行,然后将每个字符推入堆栈,但我不断收到错误消息。
Error: invalid user-defined conversion from ‘char’ to ‘const stack_element& {aka const std::basic_string&}’
这是我的代码:
#include "stack.h"
string convert(string expression)
{
stack c;
string post = " ";
for (int i =0; i<expression.length(); i++)
{
c.push(expression[i]);
}
}
int main()
{
string expression;
cout<<" Enter a Post Fix expression: ";
getline(cin,expression);
return 0;
}
这里是在另一个 .cpp 文件中编写的推送函数
void stack::push(const stack_element & item)
{
cout<<"Inside push \n";
stack_node *p = new stack_node;
p->data = item;
p->next = s_top;
s_top = p;
}
不要在推送函数中使用 const 作为参数
void stack::push(stack_element & item)
更改 void stack::push(const stack_element & item)
to void stack::push(cons char& item) ,在你的情况下,你正在尝试创建字符的 stac 。如果你想要通用的使用模板。
我目前正在从事一个项目,使用通过链表实现的堆栈从后缀转换为中缀。我试图接受一行,然后将每个字符推入堆栈,但我不断收到错误消息。
Error: invalid user-defined conversion from ‘char’ to ‘const stack_element& {aka const std::basic_string&}’
这是我的代码:
#include "stack.h"
string convert(string expression)
{
stack c;
string post = " ";
for (int i =0; i<expression.length(); i++)
{
c.push(expression[i]);
}
}
int main()
{
string expression;
cout<<" Enter a Post Fix expression: ";
getline(cin,expression);
return 0;
}
这里是在另一个 .cpp 文件中编写的推送函数
void stack::push(const stack_element & item)
{
cout<<"Inside push \n";
stack_node *p = new stack_node;
p->data = item;
p->next = s_top;
s_top = p;
}
不要在推送函数中使用 const 作为参数
void stack::push(stack_element & item)
更改 void stack::push(const stack_element & item)
to void stack::push(cons char& item) ,在你的情况下,你正在尝试创建字符的 stac 。如果你想要通用的使用模板。