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 。如果你想要通用的使用模板。