«Нет подходящей функции» - ошибка при попытке вставить в набор (c ++) - PullRequest
1 голос
/ 27 июня 2010

У меня есть следующий код:

class asd {  
    public:  
    int b;  
    asd() { b = rand() % 10; }  
    bool operator<(asd &other) { return b < other.b; }  
};

int main() {  
    asd * c; c = new asd();  
    set <asd> uaua;  
    uaua.insert(c);  
}

Тем не менее при запуске я получаю эту ошибку:

main.cpp|36|error: no matching function for call to ‘std::set<asd, std::less<asd>, std::allocator<asd> >::insert(asd*&)’|

Я использую g ++ 4.4.3

Может кто-нибудь сказать мне, где я иду не так?Я пытался взломать это в течение долгого времени, но не могу найти решение.Спасибо

Ответы [ 2 ]

4 голосов
/ 27 июня 2010

У вас есть набор asd, и вы пытаетесь добавить указатель.

Использование:

asd c; 
set <asd> uaua;
uaua.insert(c);
0 голосов
/ 27 июня 2010

Попробуйте объявить set<asd*> вместо set<asd>.

...