std::istream_iterator<T,CharT,Traits,Distance>::istream_iterator
来自cppreference.com
< cpp | iterator | istream iterator
(1) | ||
istream_iterator(); |
(C++11 前) | |
constexpr istream_iterator(); |
(C++11 起) | |
constexpr istream_iterator( std::default_sentinel_t ); |
(2) | (C++20 起) |
istream_iterator( istream_type& stream ); |
(3) | |
(4) | ||
istream_iterator( const istream_iterator& other ); |
(C++11 前) | |
istream_iterator( const istream_iterator& other ) = default; |
(C++11 起) | |
1) 构造流尾迭代器,值初始化存储的值。若定义 auto x = T(); 中的初始化器是常量初始化器,则此构造函数为 constexpr (C++11 起)。
2) 初始化迭代器并于数据成员中存储
stream
的地址。再从输入流进行首次读取以初始化缓冲数据成员。参数
stream | - | 用于初始化 istream_iterator 的流 |
other | - | 同类型的另一 istream_iterator |
示例
运行此代码
#include <iostream> #include <iterator> #include <algorithm> #include <sstream> int main() { std::istringstream stream("1 2 3 4 5"); std::copy( std::istream_iterator<int>(stream), std::istream_iterator<int>(), std::ostream_iterator<int>(std::cout, " ") ); }
输出:
1 2 3 4 5
缺陷报告
下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。
DR | 应用于 | 出版时的行为 | 正确行为 |
---|---|---|---|
P0738R2 | C++98 | 首次读取可以延迟到首次解引用 | 首次读取在构造函数中进行 |