c++ - 无法反向操作。表示它无法将 void 转换为字符串但我的结果保存为字符串的错误。已显示代码以供参考
问题描述
string result;
for(int i=st.size()-1;i>=0;i--){
result+=st.top();
cout<<st.top()<<endl;
st.pop();}
result+='\0';
return reverse(result.begin(), result.end());
st 是一堆字符。我想以相反的顺序输出堆栈元素
解决方案
的返回值std::reverse()
是void
,所以你不能return
这样做(除了一个本身返回的函数void
)。
std:reverse()
修改输入范围内联的内容,因此只是您要求修改其字符return
的变量,例如:std::string
std::reverse()
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;
推荐阅读
- python - 可以在没有 await 或 yield 的情况下实现 Python 协程吗?
- xamarin - 如何在 Xamarin 中更改 iOS 中导航栏的对齐方式?
- java - Base64.encode 返回奇怪的字符串
- android - 来自 Google Play 的关于您的权限声明的通知
- spring-batch - Spring批处理绝对路径
- jquery - keydown 事件未绑定到动态 select2 元素
- c++ - 在多播网络中发送和接收 OpenCV Mat 对象
- php - 谷歌的建议随机 php
- python - 插入排序算法因一个错误而关闭
- python - 无法从 Redshift 读取列名有空格的数据