ein*_*ica 5 c++ range istream c++20 istream-view
显然,C++20 有一个新的std::istream相关构造:std::istream_view。其上的 cppreference 页面现在是一个存根\xe2\x80\xa0。那么,什么是“视图istream”以及我可以用它做什么?
\xe2\x80\xa0 - 好吧,从技术上讲,它重定向到一个关于该std::basic_istream_view存根的页面。
Anstd::istream_view<T>是一个范围;更具体地,形成为视图的范围。标准库的这一添加类似于您可能在下面找到的内容std::ranges::views- 只不过它不是任意范围的视图,而是std::istream.
那么什么是“查看” std::istream?回想一下, an是字符istream流,而不是您选择的任意类型元素。将这些字符解析为连续的惰性应用程序是 istream 的“查看”。也就是说, 的第 k 个元素是类型的第 k 次运行的元素。TTstd::istream_view<T>(is)is >> ttT
std::istream_view当您想要将适用于范围的代码直接应用于输入数据时,您会(小心地)使用- 而不是首先以更“老式”的方式将输入解析为某些数据结构,然后处理该结构作为一个范围。
关于 an 的其他看法std::istream_view:
T@Barry 将其描述为相当于从 istream 中解析 s 的协程;阅读此答案以获取详细信息(请注意,它是关于ranges-v3中的istream视图,其中大部分成为标准范围库)。std::istream_iterator<T>@NicolBolas 认为它是“包装在 C++20 视图界面中”的结果 。| 归档时间: |
|
| 查看次数: |
1091 次 |
| 最近记录: |