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

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

Войти
Регистрация
Восстановить пароль
 
Mongrell
1 / 1 / 0
Регистрация: 21.05.2010
Сообщений: 10
#1

Счетчик срабатываний предиката. - C++

19.11.2010, 14:11. Просмотров 473. Ответов 4
Метки нет (Все метки)

Здравствуйте. Суть моего вопроса такова:

Есть предикат:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
template <typename type, class b> 
class something
{
    
    public:
        something(){};
        bool operator() (const type& a) const
        {       
            b* B;
            if (B->condition(a) == 1)
                {
                    return 1;
                }
            else return 0;
            
        }
 
};
Мне надо добавить счетчик срабатываний условия этого предиката. Счетчик должен считать срабатывания во время прохода по каком-то массиву, но потому обнуляться и при проходе по следующему массиву тоже выдавать число срабатываний.

Я пытаюсь добавить переменную таким образом:

C++
1
2
3
        int& _counter;
        explicit something(int& counter) : _counter(counter)
        {};
Но в ответ получаю
"error C2758: 'something<type,b>::_counter' : must be initialized in constructor base/member initializer list"

Что это означает и как с этим бороться?

Используется предикат например так:
C++
1
2
int rem_obj_counter = 0;
iterator newEnd = std::remove_if(arr.begin(),arr.end(),something<TYPE, another_condition>(rem_obj_counter));
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2010, 14:11     Счетчик срабатываний предиката.
Посмотрите здесь:

С++ передача условия (предиката) в функцию - C++
Здравствуйте, форумчане! Есть следующее задание: Вам необходимо реализовать шаблонный алгоритм copy_backward_if с заголовком ...

Написать связыватель для получения унарного предиката - C++
Написать связыватель, который бы связывал второй и третий аргументы трехаргументной функции для получения унарного предиката.

Написать программу, которая определяет истинность предиката - C++
написать программу, которая определяет истинность предиката: L = NOT((CXOR B)AND ( AOR B))XOR B, где A = (sin(x) &gt; cos(x)) , B = ( y...

Счетчик С++ - C++
помогите пожалуйста со счетчиком, вот условие задачи: Сотрудник ГАИ замеряет скорость движения автомашин по трассе. Посчитать, у...

Счетчик - C++
Здравствуйте. есть счетчик int main(){ float b=-1,b1=0.1,b2=1; for(b;b &lt;= b2;b=b+b1) ...

Электрический счетчик. С++ - C++
Привет всем ! Помогите решить задачу,Возможно вам легко,но у меня что-то не идет ( в понедельник уже сдать нужно При создании...

Счетчик циклов - C++
помогите найти ошибку: #include &lt;stdio.h&gt; #include &lt;iostream&gt; #include &lt;cstdlib&gt; using namespace std; int main(int argc, char**...

Нужен с счетчик - C++
Проблема со счетчиком.... ща сижу на практической, нужно написать счетчик от 1...9(шаг 2) и вывести результаты на экран.... Найдите...

Счетчик попыток - C++
Уважаемые форумчане! Есть програмка: #include &lt;iostream&gt; using namespace std; string checking(string users) { ...

счетчик цикла for - C++
Есть задача из Прата глава 5 № 4. Дафна инвестировала $100 под простые 10%. Другими словами, ежегодно инвестиция должна приносить 10%...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,444
19.11.2010, 14:56     Счетчик срабатываний предиката. #2
Ссылки должны инициализироваться в конструкторе или списке инициализации членов
Mongrell
1 / 1 / 0
Регистрация: 21.05.2010
Сообщений: 10
19.11.2010, 15:05  [ТС]     Счетчик срабатываний предиката. #3
А не подскажите как конкретно или где можно прочитать конкретно про темплейты? А то я пробовал много как, неизменно не работало.
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
19.11.2010, 15:36     Счетчик срабатываний предиката. #4
Сомневаюсь, что этот фокус пройдёт, потому что предикаты, как и итераторы, передаются в алгоритмы не по ссылкам, а по значениям.
Mongrell
1 / 1 / 0
Регистрация: 21.05.2010
Сообщений: 10
19.11.2010, 20:10  [ТС]     Счетчик срабатываний предиката. #5
Спасибо, с этой проблемой я в итоге разобрался, написав вот так:

C++
1
2
3
4
5
6
7
    public:
        int& _counter;
 
        explicit something(int& counter) : _counter(counter)
        {
            _counter = counter;
        };
Но возникла еще одна задача. Нужно, чтобы структура понимала вот такую операцию:

C++
1
something<userClass, userClass_condition>(*(new int))(userClass());
К этому я даже не знаю как подступиться. Что означают два перечня аргументов? И на что вообще стоит гуглить, чтобы понять, что это такое?
Yandex
Объявления
19.11.2010, 20:10     Счетчик срабатываний предиката.
Ответ Создать тему
Опции темы

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