64,654
社区成员
发帖
与我相关
我的任务
分享
template<typename T>
class Set
{
public:
typedef T elem_type;
bool exist(T val) const;
};
template<typename T>
class SeriesSet : public Set<T>
{
public:
typedef T elem_type;
bool exist(T val) const;
protected:
std::vector<T> data;
};
template<typename S1, typename S2>
class DescartesSet : public Set<std::pair<typename S1::value_type,typename S2::value_type> >
{
public:
typedef typename S1::value_type T1;
typedef typename S2::value_type T2;
typedef std::pair<T1,T2> elem_type;
bool exist(std::pair<T1,T2> val) const
{
return m_pSetA->exist(val.first) && m_pSetB->exist(val.second);
}
public:
DescartesSet(S1& _s1, S2& _s2) : m_pSetA(&_s1), m_pSetB(&_s2)
{
}
protected:
S1* m_pSetA;
S2* m_pSetB;
};