std :: set.insert не будет компилироваться с пользовательским классом [duplicate]

На этот вопрос уже есть ответ:

проблемы с набором контейнеров c ++ 2 ответа Не могу вставить в std :: map (G ++) 1 ответ

У меня есть класс Record с тремя частными целочисленными полями, геттерами и сеттерами, а также конструктором по умолчанию и специальным конструктором. Я намереваюсь заполнить набор записями, но у меня проблемы с получением кода.

#include <set>
using namespace std;

class Record
{
    int a, b, c;
    public:
    //getters and setters
    Record(){a = -1; b = -1; c = -1;};
}

int main()
{
    set< Record > s;
    s.insert(Record());
}

Пытается компилировать результаты в этой ошибке:

C: \ Users \ Denton \ Documents \ Университет Индианы \ Class Documents \ Spring 2013 \ CSCI-H2 12 \ Assignment9> g ++ a9.cpp -o a9 Файл, включенный в c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / string: 5 0: 0, из c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / loc ale_classes.h: 42, из c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / ios _base.h: 43, из c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6 .2 / include / c ++ / ios: 43, из c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / ostream: 40, из c: \ mingw \ bin ../ lib /gcc/mingw32/4.6.2/include/c++/iostream: 40, из a9.cpp: 3: c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_function .h: В функции-члене 'bool std :: less <_Tp> :: operator () (const _Tp &, const _Tp &) const [with _ Tp = Record]': c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_tree.h: 1267: 4: экземпляр защищен от 'std :: pair, bool> std :: _ Rb_tree <_Key, _Val, _KeyOfValue, _Compare, _Alloc> :: _ M_insert_unique ( const _Val &) [с _Key = записью, _Val = записью, _KeyOfValue = std :: _ Iden tity, _Compare = std :: l ess, _Alloc = std :: allocator] 'c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_set.h: 410: 29 : instatiated из 'std :: pair, _Compare, typename _Alloc :: rebind <_Key> :: other> :: const_iterator, bool> std :: set <_Key, _Compare, _Alloc> :: insert (const value_type &) [with _Key = Запись, _Compar e = std :: less, _Alloc = std :: allocator, typename std :: _ Rb_tree <_ Ключ, _Key, std :: _ Identity <_Key>, _Compare, typename _Alloc :: rebind <_Key> :: other> :: const_iterator = std :: _ Rb_tree_const_iterator, std :: set <_Key, _Compare, _Alloc> :: value_type = Record] 'a9.cpp: 72: 28: создается здесь c: \ mingw \ bin ../ lib /gcc/mingw32/4.6.2/include/c++/bits/stl_function.h:236:22: er ror: нет совпадения для 'operator <' в '__x <__y' c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_function.h: 236: 22: нет te: кандидатами являются: c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ /bits/stl_pair.h:207:5: note: t использовать bool std :: operator <(const std :: pair <_T1, _T2> &, costst std :: pair <_T1, _T2> &) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_iterator.h: 291: 5: не e: шаблон bool std :: operator <(const std :: reverse_iterator <_It erator > &, const std :: reverse_iterator <_Iterator> &) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_iterator.h: 341: 5: не e: template bool std :: operator <(const std :: r everse_iterator <_IteratorL> &, const std :: reverse_iterator <_IteratorR> &) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ /bits/basic_string.h:2510:5: no te: template bool std :: operator <(cons t std :: basic_string <_CharT, _Traits, _Alloc> &, const std :: basic_string <_CharT, _ Traits, _Alloc> &) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / basic_string.h: 2522: 5: no te: template bool std :: operator <(cons t std: : basic_string <_CharT, _Traits, _Alloc> &, const _CharT *) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / basic_string.h: 2534: 5: нет te : template bool std :: operator <(cons t _CharT *, const std :: basic_string <_CharT, _Traits, _Alloc> &) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4. 6.2 / include / c ++ / bits / stl_vector.h: 1290: 5: примечание: шаблон bool std :: operator <(const std :: vector <_Tp, _ Alloc> &, const std :: vector <_Tp, _Alloc> & ) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_list.h: 1593: 5: note: шаблон bool std :: operator <(const std :: list < _Tp, _Allo c> &, const std :: list <_Tp, _Alloc> &) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_tree.h: 856: 5: примечание: t использует bool std :: operator <(const std :: _ Rb_tree <_Key, _Val, _KeyOfValue, _Compare, _All oc> &, const std :: _ Rb_tree <_Key, _Val, _KeyOfValue, _Compare, _Alloc> c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_set.h: 713: 5: note: te mplate bool std :: operator <(const std :: set < _Key, _Compare, _Alloc> &, const std :: set <_Key, _Compare, _Alloc> &) c: \ mingw \ bin ../ lib / gcc / mingw32 / 4.6.2 / include / c ++ / bits / stl_multiset.h : 696: 5: не e: шаблон bool std :: operator <(const std :: multiset <_Key, _Compare, _Alloc> &, const std :: multiset <_Key, _Compare, _All oc> &)

insert отлично работает, когда я делаю набор s и s.insert (1) Что нужно сделать для компиляции этого кода?

Заранее спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос