![](/img/trans.png)
[英]C++ string - strange behaviour when using initialization list constructor
[英]C++ Strange Results of String Range Constructor
我有一些类似的代码:
std::istringstream iss{"SomeChars"};
// Some read ops here (though the problem stays even without them)
std::string reconst(iss.str().cbegin(), iss.str().cbegin() + iss.tellg());
std::cout << reconst << std::endl;
结果总是一些乱码。 这是一个演示这一点的程序。
当我将iss.str()
存储在std::string_view
或std::string
中时,该程序有效。 但是,我仍然有我的问题:
问题:
str
function 按值返回字符串。 这意味着对str
的每次调用都会为您提供一个新字符串 object,并且您的迭代器指向这些临时字符串,而不是作为字符串流缓冲区的字符串。 这行不通,因为迭代器需要指向同一个 object,而不是具有相同值的不同对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.