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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
#1

iterators & file - C++

23.01.2012, 13:33. Просмотров 428. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2012, 13:33     iterators & file
Посмотрите здесь:

STL Iterators - C++
Допустим есть проект #ifndef ContainerTemplateFunction_hpp // Preprocessor gates #define ContainerTemplateFunction_hpp ...

Map/set iterators are incompatible - C++
void Delete(int a , int b) { multiset &lt;double&gt; ::iterator First, Last; multiset &lt;double&gt; ::iterator temp; int i = 0; ...

Оибка vector iterators incompatible ? - C++
привет всем ! вот код class rgb2hsl { public: rgb2hsl(vector&lt;int&gt; r, vector&lt;int&gt; g , vector&lt;int&gt; b): R(r.begin(), r.end()),...

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

fatal error C1083: Cannot open include file: 'Date.h': No such file or directory - C++
Всем добрый вечер! У меня проблема. Мне нужно, чтобы мой класс содержал обьект другого класса как элемент данных, я его добавила в проект,...

vector(выскакивает ошибка "vector iterators incompatible") - C++
Доброго времени суток! имеется следующий код: // obr.cpp : Defines the entry point for the console application. // #include...

Ошибка при "сборке" Cannot open include file: 'stdafx.h': No such file or directory - C++
Я полный ноль в C++=( Вот код:#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;windows.h&gt; #define MAXINJECTSIZE 4096 ...

Error 1 fatal error C1083: Cannot open include file: 'fstream.h': No such file or directory - C++
// 3.cpp : main project file. #include &quot;stdafx.h&quot; #include &lt;fstream.h&gt; #include &lt;iomanip.h&gt; #define MIN_DISCOUNT 0.97; ...

Error 1 fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory - C++
#include &quot;stdafx.h&quot; #include &lt;iostream.h&gt; int main() { double d=1.321e9; int n=1024;

Error 1 fatal error C1083: Cannot open include file: 'iostream.h': No such file or directory - C++
// 1.cpp : main project file. #include &quot;stdafx.h&quot; #include &lt;iostream.h&gt; #include &lt;fstream.h&gt; using namespace std; // Клас...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
23.01.2012, 14:27     iterators & file #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;
}
rangerx
1932 / 1541 / 141
Регистрация: 31.05.2009
Сообщений: 2,908
23.01.2012, 14:39     iterators & file #3
Можно. Только не так
C++
1
std::copy(start, end, std::begin(v)); // для пустого вектора так делать нельзя
а так
C++
1
std::copy(start, end, std::back_inserter(v));
retmas
Жарю без масла
859 / 741 / 164
Регистрация: 13.01.2012
Сообщений: 1,694
23.01.2012, 14:51     iterators & file #4
Цитата Сообщение от Mayonez Посмотреть сообщение
можно ли считывать итераторами с файла типу так:
нет, потому что здесь
Цитата Сообщение от Mayonez Посмотреть сообщение
std::copy(start, end, std::begin(v));
выход за пределы последовательности. копи никак не расширяет вектор и не должен. забота программиста - чтобы вектор был достаточного размера для копирования в него последовательности [бегин;энд)
Yandex
Объявления
23.01.2012, 14:51     iterators & file
Ответ Создать тему
Опции темы

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