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

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

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

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

19.11.2010, 14:11. Просмотров 477. Ответов 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));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2010, 14:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Счетчик срабатываний предиката. (C++):

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

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

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

Для натурального числа определить истинность предиката «все цифры в записи числа равны» - C++
Для натурального числа определить истинность предиката «все цифры в записи числа равны». Если предикат истинен, то вывести эту цифру.

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

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

4
Nameless One
Эксперт С++
5774 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
19.11.2010, 14:56 #2
Ссылки должны инициализироваться в конструкторе или списке инициализации членов
0
Mongrell
1 / 1 / 0
Регистрация: 21.05.2010
Сообщений: 10
19.11.2010, 15:05  [ТС] #3
А не подскажите как конкретно или где можно прочитать конкретно про темплейты? А то я пробовал много как, неизменно не работало.
0
volovzi
267 / 169 / 8
Регистрация: 14.03.2010
Сообщений: 501
19.11.2010, 15:36 #4
Сомневаюсь, что этот фокус пройдёт, потому что предикаты, как и итераторы, передаются в алгоритмы не по ссылкам, а по значениям.
0
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());
К этому я даже не знаю как подступиться. Что означают два перечня аргументов? И на что вообще стоит гуглить, чтобы понять, что это такое?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.11.2010, 20:10
Привет! Вот еще темы с ответами:

Счетчик нужен - C++
Помогите пож как здесь установить счетчик и сделать так чтобы программа работала пока не будет отгадано число. #include &lt;iostream&gt; ...

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

Счетчик в Binsearch - C++
Поиск в отсортированной строке длины n буквы (char k) Помогите поставить счетчик, который будет показывать, сколько раз встречается эта...

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


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
19.11.2010, 20:10
Ответ Создать тему
Опции темы

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