std::istream_iterator<T,CharT,Traits,Distance>:: istream_iterator
From cppreference.net
<
cpp
|
iterator
|
istream iterator
C++
Iterator library
| Iterator concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator primitives | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Algorithm concepts and utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Indirect callable concepts | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Common algorithm requirements | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Utilities | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Iterator adaptors | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::istream_iterator
| Member functions | ||||
|
istream_iterator::istream_iterator
|
||||
| Non-member functions | ||||
|
(until C++20)
|
| (1) | ||
|
istream_iterator
(
)
;
|
(jusqu'en C++11) | |
|
constexpr
istream_iterator
(
)
;
|
(depuis C++11) | |
|
constexpr
istream_iterator
(
std::
default_sentinel_t
)
;
|
(2) | (depuis C++20) |
|
istream_iterator
(
istream_type
&
stream
)
;
|
(3) | |
| (4) | ||
|
istream_iterator
(
const
istream_iterator
&
other
)
;
|
(jusqu'en C++11) | |
|
istream_iterator
(
const
istream_iterator
&
other
)
=
default
;
|
(depuis C++11) | |
1,2)
Construit l'itérateur de fin de flux
, initialise la valeur stockée par valeur. Ce constructeur est constexpr si l'initialiseur dans la définition
auto
x
=
T
(
)
;
est un initialiseur constant
(depuis C++11)
.
3)
Initialise l'itérateur, stocke l'adresse de
stream
dans un membre de données, et effectue la première lecture depuis le flux d'entrée pour initialiser le membre de données de valeur mise en cache.
4)
Construit une copie de
other
.
Si
std::
is_trivially_copy_constructible
<
T
>
::
value
est
true
, ce constructeur de copie est un constructeur de copie trivial.
(depuis C++11)
Paramètres
| stream | - |
flux pour initialiser l'
istream_iterator
avec
|
| other | - |
un autre
istream_iterator
du même type
|
Exemple
Exécuter ce code
#include <algorithm> #include <iostream> #include <iterator> #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, " ") ); }
Sortie :
1 2 3 4 5
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 1280 | C++98 | surcharge (3) stockait stream directement | stocke son adresse à la place |
| P0738R2 | C++98 | la première lecture pouvait être différée jusqu'au premier déréférencement | toujours effectuée dans le constructeur |