Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Mayonez
382 / 274 / 53
Регистрация: 26.12.2009
Сообщений: 875
#1

iterators & file

23.01.2012, 13:33. Просмотров 458. Ответов 3
Метки нет (Все метки)

можно ли считывать итераторами с файла типу так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
#include <algorithm>
 
int main()
{
    std::vector<int> v;
    std::ifstream fin("input.txt");
    std::istream_iterator<int> start(fin), end;
    std::copy(start, end, std::begin(v));
    for(auto i : v)
        std::cout << i << " ";
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2012, 13:33
Ответы с готовыми решениями:

STL Iterators
Допустим есть проект #ifndef ContainerTemplateFunction_hpp //...

Оибка vector iterators incompatible ?
привет всем ! вот код class rgb2hsl { public: rgb2hsl(vector&lt;int&gt; r,...

Map/set iterators are incompatible
void Delete(int a , int b) { multiset &lt;double&gt; ::iterator First, Last; ...

Ошибка: multiple definition of `void std::swap<A>(A&amp;, A&amp;)
Хочу специализировать swap для своего класса. Получаю ошибку. Вот код:#ifndef...

Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Пытаюсь скомпилировать программу пишет friend ostrem&amp; operator &lt;&lt;(ostream&amp;...

3
soon
2545 / 1310 / 177
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
23.01.2012, 14:27 #2
Да, почему нет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
#include <algorithm>
 
int main()
{
    std::vector<int> v;
    std::ifstream fin("input.txt");
    std::istream_iterator<int> start(fin), end;
    while(start != end)
        v.push_back(*start++);
    std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " "));
    std::cout << std::endl;
    return 0;
}
1
rangerx
1941 / 1550 / 478
Регистрация: 31.05.2009
Сообщений: 2,913
23.01.2012, 14:39 #3
Можно. Только не так
C++
1
std::copy(start, end, std::begin(v)); // для пустого вектора так делать нельзя
а так
C++
1
std::copy(start, end, std::back_inserter(v));
1
retmas
Жарю без масла
865 / 747 / 225
Регистрация: 13.01.2012
Сообщений: 1,702
23.01.2012, 14:51 #4
Цитата Сообщение от Mayonez Посмотреть сообщение
можно ли считывать итераторами с файла типу так:
нет, потому что здесь
Цитата Сообщение от Mayonez Посмотреть сообщение
std::copy(start, end, std::begin(v));
выход за пределы последовательности. копи никак не расширяет вектор и не должен. забота программиста - чтобы вектор был достаточного размера для копирования в него последовательности [бегин;энд)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2012, 14:51

Программа аварийно завершается с ошибкой "map/set iterators are incompatible"
Добрый день! Проблема такая: в s1 и s2 рандомно добавляю числа, хочу найти...

В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты первой точки не попавшей в эту область (фигура x*x+y*y<25&&x*x+y*y>=9&
В заштрихованную фигуру бросают точки с координатами x и y. Получить координаты...

ostream &operator<< (ostream &output, const Array &obj) - что означает эта строка?
void Array::getArray() // вывод массива { for (int ix = 0; ix &lt; size;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru