5

3 つのプライベート整数フィールド、ゲッターとセッター、およびデフォルトの特定のコンストラクターを持つクラス 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\Indiana University\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> からインスタンス化Record, _Val = Record, _KeyOfValue = std::_Identity, _Compare = std::less, _Alloc = std::allocator]' c:\mingw\bin../lib/gcc/mingw32/4.6.2/include/ c++/bits/stl_set.h:410:29: 'std::pair, _Compare, typename _Alloc::rebind<_Key>::other>::const_iterator, bool> std::set <_Key, _Compare, からインスタンス化されました。 _Alloc>::insert(const value_type&) [ with _Key = Record, _Compar e = std::less, _Alloc = std::allocator, typename std::_Rb_tree<_ Key, _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:エラー: '__x < __y' の 'operator<' に一致しません 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: 注: t emplate bool std::operator<(const std::pair<_T1, _T2>&, const 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: not e: template bool std::operator<(const std::reverse_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: 注意: 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: 注意: テンプレート 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:注 : template 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: 注意: テンプレート bool std::operator<(const std::list<_Tp, _Alloc>&, const std::list<_Tp, _Alloc >&) c:\mingw\bin../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_tree.h:856:5: 注: t emplate 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: 注意: 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: not e: template bool std::operator<(const std::multiset<_Key, _Compare, _Alloc >&, const std::multiset<_Key, _Compare, _All oc>&)const std::set<_Key, _Compare, _Alloc>&) c:\mingw\bin../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_multiset.h:696:5: not e: template bool std::operator<(const std::multiset<_Key, _Compare, _Alloc>&, const std::multiset<_Key, _Compare, _All oc>&)const std::set<_Key, _Compare, _Alloc>&) c:\mingw\bin../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_multiset.h:696:5: not e: template bool std::operator<(const std::multiset<_Key, _Compare, _Alloc>&, const std::multiset<_Key, _Compare, _All oc>&)

セット s と s.insert(1) を作成すると、insert は正常に動作します。このコードをコンパイルするには、何をする必要がありますか?

前もって感謝します。

4

1 に答える 1