Форум программистов, компьютерный форум CyberForum.ru

istream_iterator - C++

Восстановить пароль Регистрация
 
Luzifer
 Аватар для Luzifer
6 / 6 / 2
Регистрация: 28.06.2010
Сообщений: 85
27.03.2013, 10:54     istream_iterator #1
Каким образом итератор std::istream_iterator<int> ii(std::cin); определяет сколько строк надо вводить?
"for(int i = 0; i < (реагирует на изменение); i++)"

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "iostream"
#include <iterator>
#include <list>
#include <algorithm>
 
int main(int argc, char **argv)
{
    setlocale(LC_ALL, "Russian");
    std::istream_iterator<int> ii(std::cin);
    
    std::list<int> l1;
 
    for(int i = 0; i < 3; i++)
        l1.push_back(*ii++);
 
    std::list<int>::iterator it;
    for(it = l1.begin(); it != l1.end(); it++)
        std::cout << *it << " " << std::endl;
 
    std::cout << std::endl;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2013, 10:54     istream_iterator
Посмотрите здесь:

istream_iterator C++
istream_iterator C++
Разница межу istream_iterator и istreambuf_iterator C++
C++ Как исправить код с istream_iterator?
Отличие istreambuf_iterator от istream_iterator C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
27.03.2013, 11:03     istream_iterator #2
Цитата Сообщение от Luzifer Посмотреть сообщение
Каким образом итератор std::istream_iterator<int> ii(std::cin); определяет сколько строк надо вводить?
Нужно создать специальный итератор конца
C++
1
std::istream_iterator<int> eos;
и при чтении сравнивать его текущим. См. http://www.cplusplus.com/reference/i...ream_iterator/
SummerRain
 Аватар для SummerRain
325 / 324 / 17
Регистрация: 16.12.2012
Сообщений: 544
27.03.2013, 11:27     istream_iterator #3
по-моему это не то, о чём спрашивал автор.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <iterator>
#include <list>
#include <algorithm>
 
int main(int argc, char **argv)
{
    setlocale(LC_ALL, "Russian");
    std::istream_iterator<int> ii(std::cin);   // не тут он реагирует
    
    std::list<int> l1; 
    
    int a = *ii;  //  а тут
    int b = *++ii;  // и тут
    int c = a + b;
    l1.push_back(a);
    l1.push_back(b);
    l1.push_back(c);
 
    std::cout << std::endl;
 
    std::list<int>::iterator it;
    for(it = l1.begin(); it != l1.end(); it++)
        std::cout << *it << " " << std::endl;
 
    std::cout << std::endl;
    system("PAUSE");
    return 0;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
27.03.2013, 11:31     istream_iterator #4
Цитата Сообщение от SummerRain Посмотреть сообщение
по-моему это не то, о чём спрашивал автор.
Автор, о чем Вы спрашивали?
Yandex
Объявления
27.03.2013, 11:31     istream_iterator
Ответ Создать тему
Опции темы

Текущее время: 12:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru