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

Не могу написать функтор для поиска в векторе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В чем ошибка? http://www.cyberforum.ru/cpp-beginners/thread796110.html
Компилятор ругается на: >c:\users\home2\documents\visual studio 2008\projects\самостоятильные\самост 3\№3.cpp(20) : error C2017: недопустимая escape-последовательность 1>c:\users\home2\documents\visual studio 2008\projects\самостоятильные\самост 3\№3.cpp(20) : warning C4244: инициализация: преобразование 'int' в 'float', возможна потеря данных 1>c:\users\home2\documents\visual studio...
C++ Задано число в 8-ой СС. Осуществить его перевод в 10-ую СС Никак не могу написать программу! Прошу о помощи! http://www.cyberforum.ru/cpp-beginners/thread796100.html
C++ Определить общий вид степенного ряда, вычисляемого в данной функции
Определить общий вид степенного ряда, вычисляемого в данной функции. //-----------------------------------------------1 double sum(double x,double eps) { double s,sn; int n; for (s=0, sn = 1, n=1; fabs(sn) > eps; n++) { s += sn; sn= - sn * x / n; }
C++ Программа выводит сообщение - Hello, World!
Нужна программа, которая выводит сообщение - Hello, World!!!!
C++ Задачка на поиск вхождения http://www.cyberforum.ru/cpp-beginners/thread796047.html
Помогите, пожалуйста, с задачей: Нужно ввести с клавиатуры строку длиной не более 200 символов, ещё одну не более 10 символов и номер позиции, начиная с которой ищет первую позицию вхождения второй строки в первую и выводит эту позицию результат пользователю.
C++ Формирование циклической формы перестановки Здравуствуйте! Чтобы показать вам, что такое циклическая форма я прикрепляю картинку - пример ( На ней 1, 2, 3, 4 - последовательность действий. В моём примере должно получиться (bf) (dc) , но получается только (bf). Подскажите, пожалуйста, что не так. http://s018.***********/i525/1302/73/4e9f9605b872.jpg #include "stdafx.h" #include <conio.h> #include <iostream> using namespace... подробнее

Показать сообщение отдельно
NikosQuattro
0 / 0 / 0
Регистрация: 27.02.2013
Сообщений: 4

Не могу написать функтор для поиска в векторе - C++

27.02.2013, 11:55. Просмотров 558. Ответов 4
Метки (Все метки)

Есть вектор, содержащий указатели на класс, нужно использовать функцию find, которая ищет элемент по полю в классе. Как я понял мне нужно написать функтор, в котором нужно переопределить операцию сравнения классов.
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
class A:public C
{
public:
    A(int f1, int f2):C(f2)
    {fielda=f1;}
//=========================================
    int geta()
    {
        return fielda;
    }
    void add(int a,int b)
    {
        tmp=new B(a,b);
        vecta.push_back(tmp);
        vectc.push_back(tmp);
    }
    int count()
    {
        return vecta.size();
    }
    B b(int c)
    {
        return *(vecta[c]);
    }
    vector<B*>::iterator it;
    vector<B*> vecta;
private:
    int fielda;
    B *tmp;
};
void out(A* c1)
{
    for (int i=0;i<(*c1).count();i++)
        {
            cout<<c1->b(i).getb();
            cout<<c1->b(i).getd();
            cout<<"\n";
        }
}
class CCompTitle
{
public:
bool operator()(B* n1,int t)
{
return (n1->fieldb==t);
}
};
int main()
{
    A* c1;
    int tmp1,tmp2,i,n;
        cin>>tmp1>>tmp2;
        c1=new A(tmp1,tmp2);
        cin>>n;
        for(i=0;i<n;i++)
        {
            cin>>tmp1>>tmp2;
            c1->add(tmp1,tmp2);
        }
        out(c1);;
 
        cin>>tmp1;
        c1->it=find(c1->vecta.begin(),c1->vecta.end(),CCompTitle(tmp1));
А компилятор пишет error C2440: '<function-style-cast>' : cannot convert from 'int' to 'CCompTitle'
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru