gpt4 book ai didi

c++ - 无法从具有相同类型的两个来源之一创建 std::string

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:30 25 4
gpt4 key购买 nike

为什么最后一行不起作用?

ostringstream stream;
int f = 12345;
stream << f;
string st = stream.str();
cout << typeid(st.rbegin()).name() << endl;
cout << typeid(stream.str().rbegin()).name() << endl;
cout << string(st.rbegin(), st.rend()) << std::endl;
cout << string(stream.str().rbegin(), stream.str().rend()) << endl;

ir 说:“字符串迭代器不兼容”,但类型相同。

最佳答案

调用 ostringstream::str() 方法会创建一个新的字符串对象,因此您正在使用来自两个不同对象的迭代器。

要解决这个问题,将字符串存储在一个临时变量中:

string temp = stream.str();
cout << string(temp.rbegin(), temp.rend()) << endl;

这就是您已经对 st 变量执行的操作。

关于c++ - 无法从具有相同类型的两个来源之一创建 std::string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7147457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com