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

Функтор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано описание следующего класса class TPoint ... Как описывается указатель на данный класс http://www.cyberforum.ru/cpp-beginners/thread822272.html
Дано описание следующего класса class TPoint ... Как описывается указатель на данный класс
C++ Функция,которая печатает все элементы массива, большие заданного числа Дан массив, упорядоченный по убыванию {16, 13, 12, 8,5,4,1,-1,-2,-5}. Написать функцию, которая печатает все элементы массива, большие заданного числа N, которое передается в функцию. Если таких чисел в массиве нет, сообщить об этом. http://www.cyberforum.ru/cpp-beginners/thread822269.html
C++ Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми
Даны натуральные числа M, N. Поменять одну из цифр первого числа с цифрой второго числа, чтобы получившиеся числа были взаимно простыми. Помогите решить. СРОЧНО надо. С++ visual studio 2010(если что) Добавлено через 2 часа 31 минуту Нарооооод, помогите плз с этой херней т_т Добавлено через 10 часов 13 минут Up тему. Народ, помогите пожалуйста
C++ Копирование строки (strcpy)
Здравствуйте! Хочу написать программу, в которой пользователь с клавиатуры вводит строку, программа ее принимает и выводит копию введенной строки. Соотвецтвенно пользуюсь фцией strcpy, возникла проблема с этой фцией: #include <stdio.h> #include <string.h> #include <iostream> using namespace std; const int c1=10; void main() { char string1;
C++ c++ http://www.cyberforum.ru/cpp-beginners/thread822239.html
Народ помогите!!!Введите зарезервированное слово, которое используется для описания класса C++
C++ A+B Требуется сложить два целых числа А и В. Входные данные В единственной строке входного файла INPUT.TXT записано два натуральных числа через пробел, не превышающих 10^9. Выходные данные В единственную строку выходного файла OUTPUT.TXT нужно вывести одно целое число — сумму чисел А и В. Помогите найти ошибку. :wall::wall::cry: подробнее

Показать сообщение отдельно
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049

Функтор - C++

29.03.2013, 17:45. Просмотров 503. Ответов 4
Метки (Все метки)

Доброго времени суток! есть программа, которая демонстрирует передачу объекта функции по ссылке:

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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <iostream>
#include <list>
#include <algorithm>            
#include <iterator>
using namespace std;
 
template<typename T>
inline void PRINT_ELEMENTS(const T &coll, const char *optcstr = "")
{
    typename T::const_iterator pos;
 
    cout << optcstr;
    for(pos = coll.begin(); pos != coll.end(); ++pos)
        cout << *pos << " ";
 
    cout << endl;
}
 
class IntSequence{
    private:
        int value;
 
    public:
        IntSequence(int initValue): value(initValue) {}
 
        int operator() () {
            return value++;
        }
};
 
int _tmain(int argc, _TCHAR* argv[])
{
    list<int> coll;
    IntSequence seq(1);                         //серия целых начинающихся с 1
 
    /*вставка значений от 1 до 4
    передача объекта функции по ссылке
    чтобы при следующем вызове значение начиналось с 5*/
 
    generate_n<back_insert_iterator<list<int> >,
            int, IntSequence>(back_inserter(coll)//начало
            4,                          //кол-во значений
            seq);                           //генератор значений
 
    PRINT_ELEMENTS(coll);
 
    //вставка эл-ов от 42 до 45
    generate_n(back_inserter(coll),         //начало
            4,                      //кол-во значений
            IntSequence(42));           //генератор значений
 
    PRINT_ELEMENTS(coll);
 
    /*продолжение первой последовательности
    передача объекта функции по ссылке
    чтобы при следующем вызове значения тоже начинались с 5*/
 
    generate_n(back_inserter(coll),     //начало
            4,                  //кол-во значений
            seq);                           //генератор значений
 
    PRINT_ELEMENTS(coll);
 
    //снова продолжить первую последовательность
 
    generate_n(back_inserter(coll),             //начало
            4,                          //кол-во значений
            seq);                                   //генератор значений
 
    PRINT_ELEMENTS(coll);
 
    cout << "\n\n";
        return 0;
}
должно получиться следующие:

1 2 3 4
1 2 3 4 42 43 44 45
1 2 3 4 42 43 44 45 5 6 7 8
1 2 3 4 42 43 44 45 5 6 7 8 5 6 7 8

но у меня все остается так же

1 2 3 4
1 2 3 4 42 43 44 45
1 2 3 4 42 43 44 45 1 2 3 4
1 2 3 4 42 43 44 45 1 2 3 4 1 2 3 4

обыскался ошибку, но найти не могу, буду благодарен за помощь!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru