セットにベクトル
struct X
{
int a;
int b;
};
bool sortComp(const X first, const X second)
{
if (first.a!=second.a)
return (first.a<second.a);
else
return (first.b<second.b);
}
class setComp
{
public:
bool operator() (const X first, const X second) const
{
if (first.a!=second.a)
return (first.a<second.a);
else
return (first.b<second.b);
}
};
int main()
{
vector<X> v;
set<X, setComp> s;
sort(begin(v), end(v),sortComp);
}
あなたが私を見るように同じ機能を2回、ソート用に1回、セット内で暗黙ソート用に1回実装します。コードの重複を避ける方法はありますか?
'bool演算子(const X first、const X second)const {return sortComp(first、second);}'? – Vladimir
この特定のケースでは、私は構造体Xのための演算子<を実装するので、あなたはセットとソートについてそれを忘れることができます。 – stefaanv