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

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

Войти
Регистрация
Восстановить пароль
 
IcyWind
8 / 8 / 2
Регистрация: 19.09.2011
Сообщений: 269
#1

Пробелемы с copy - C++

24.11.2011, 20:50. Просмотров 478. Ответов 0
Метки нет (Все метки)

Требуется написать это
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
string Fam,pred;
map <string, list<string> > data;
list<string> all_stud;
ifstream FS;
        FS.open(s);
 
                 while(!FS.eof())
                 {
                    FS >> Fam;
                    FS >> pred;
                    data[pred].push_back(Fam);
 
                    list<string> :: iterator pb = all_stud.begin();
                    list<string> :: iterator pe = all_stud.end();
                    if (find(pb, pe, Fam) == pe)
                    {
                        all_stud.push_back(Fam);
                    }
 
                 }
                 FS.close();
Но без циклов! для этого хочу использовать, хм...как бы правильно назвать..."заглушку итератора"
C++
1
copy(istream_iterator<string>(FS), istream_iterator<string>(), writer(data, all_stud));
где writer - это
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class writer : public iterator<output_iterator_tag, ????? >
{
    map <string, list<string> > &dat;
    list<string> &all;
    string Fam;
    bool flag; //true = familiya
    
public:
    writer( map <string, list<string> > &dat_, list<string> &all_): dat(dat_), all(all_)
    {
        
        flag = true;
    }
 
    writer  operator *()
    {
        return *this;
    }
 
    void operator = (string s)
    {
        if(flag)
        {
            Fam = s;
            list<string> :: iterator pb = all.begin();
            list<string> :: iterator pe = all.end();
            if (find(pb, pe, Fam) == pe)
            {
                all.push_back(Fam);
            }
            flag = !flag;
        }
        else
        {
            dat[s].push_back(Fam);
            flag = !flag;
        }
    }
    void operator ++()
    {
 
    }
};
на месте ????? должен быть тип, на который указывает итератор. Но я же делаю заглушку...и поэтому мой итератор явно ни на какой тип не указывает. Что там писать?

Добавлено через 6 часов 33 минуты
..................................
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2011, 20:50     Пробелемы с copy
Посмотрите здесь:

Перегрузка copy() - C++
Здравствуйте, уважаемые. Пробую создать копию библиотечной функции copy(): template&lt;class Iter1, class Iter2&gt; Iter2 temp_copy(Iter1 first,...

Вывод с copy - C++
Не могли бы вы показать/рассказать про вывод, например, массива, с использованием не std:: cout &lt;&lt; , а std::copy и что-то там еще....

Copy constructor - C++
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace::std; class alpha{ int data; public: alpha() {} alpha(int d) :...

std::copy - C++
typedef std::list&lt;size_t&gt; Path; Path::iterator _it; Path path; std::copy( _it, path.end(), std::ostream_iterator&lt;size_t&gt;( std::cout,...

Алгоритм copy - C++
У меня есть вектор указателей vector&lt;cString *&gt; (cString - это мой класс), подскажите, можно ли вывести вектор в консоль, однако нужно что...

алгоритм copy - C++
copy(v.begin(), v.end(), ostream_iterator&lt;char&gt;(cout, &quot; &quot;)); - копирует последовательность v.begin(), v.end() в выходной поток, а как...

copy on write оптимизация - C++
Требуется сделать copy on write оптимизацию, но я не знаю как мне верно перенаправлять указатели / ссылки :( Оптимизация состоит в том,...

Default copy constructor - C++
Что default copy constructor делает, из-за чего мой NRVO выводит разные адресса, если оставить его по умолчанию. А если переопределить...

copy, iterator, vector - C++
#include &lt;istream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; #include &lt;iterator&gt; int main( ) { std::vector &lt;int&gt;...

STL. Алгоритм copy() - C++
Здравствуйте. Решаю задачку из учебника лафоре. Звучит она следующим образом: Алгоритм copy() можно использовать для копирования...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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