无法反向操作。说它不能将 void 转换为字符串但我的结果保存为字符串的错误。已显示代码参考

not able to reverse operation. The error that says it cannot convert void to string but my result is saved as string. Have shown the code to refer

string result;
for(int i=st.size()-1;i>=0;i--){
 result+=st.top();
 cout<<st.top()<<endl;
 st.pop();}
 result+='[=10=]';
 return reverse(result.begin(), result.end());

st是一堆字符。我想倒序输出栈元素

std::reverse() 的 return 值为 void,所以你不能 return 它(除了本身 return 的函数 void).

std:reverse() 修改内联输入范围的内容,因此只需 return 您要求 std::reverse() 修改其字符的 std::string 变量,例如:

string result;
while (!st.empty()){
    result += st.top();
    cout << st.top() << endl;
    st.pop();
}
reverse(result.begin(), result.end());
return result; // <-- here

或者,您可以只使用 string::insert() 而根本不使用 std::reverse(),例如:

string result;
result.reserve(st.size());
while (!st.empty()){
    result.insert(0, st.top());
    cout << st.top() << endl;
    st.pop();
}
return result;