繁体   English   中英

C++ 字符串范围构造函数的奇怪结果

[英]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_viewstd::string中时,该程序有效。 但是,我仍然有我的问题:

问题:

  • 为什么程序会这样?
  • 我看不出它会如何被这样解释,但这是最令人烦恼的解析吗?

str function 按值返回字符串。 这意味着对str的每次调用都会为您提供一个新字符串 object,并且您的迭代器指向这些临时字符串,而不是作为字符串流缓冲区的字符串。 这行不通,因为迭代器需要指向同一个 object,而不是具有相同值的不同对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM