string - 错误:在 C++ 中从“char”转换为非标量类型“std::string {aka std::basic_string}”
问题描述
#include <iostream>
using namespace std;
int main() {
string str;
cin >> str;
string str1 = str[0]; // statement1
str1 = str[0]; // statement2
cout << str1 << endl;
}
Statement1 显示错误,而 statement2 运行正常。谁能解释为什么会发生这种情况?
解决方案
语句 1 尝试使用构造函数std::string
进行初始化str1
(即使您使用的是=
它仍然调用构造函数),但是没有构造函数可以std::string
从单个字符生成 a。另一方面,语句 2 正在调用std::string::operator=()
其中存在适合单个字符的重载。
推荐阅读
- python - 从 Plotly 色标访问颜色
- discord - 我可以添加到 Discord webhook 的所有内容是什么?
- database - Keycloak 数据库集成
- python - 如何通过 tweepy 从 twitter 获取用户而不是热门推文?
- json - ReactJS DraftJS 从序列化数据初始化
- ssh - (gcloud.beta.compute.ssh) [/usr/bin/ssh] 退出并返回代码 [255]
- tensorflow - Colab 中的 TPU 训练、自定义模型、来自我自己的 GCP 帐户的数据:单元似乎挂起,没有进度或错误消息
- python - 在python中使用beautifulsoup从列表中获取数据
- nginx - Odoo Nginx 强制用户使用子域 URL
- c# - 工作服务关闭时如何发送通知