⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtset.cpp

📁 这是c++编程方面的名著的例子代码
💻 CPP
字号:
#include "set.h"
#include "algo.h"
#include "ctmutex.h"


template <class T> class mt_set : virtual private mutex{
private:
   set<T,less<T> > S;
   set<T,less<T> > M;
public:
    mt_set(void);
    mt_set(set<T,less<T> > X);
    set<T,less<T> > setUnion(set<T,less<T> > X);
    set<T,less<T> > intersection(set<T,less<T> > X);
    int membership(set<T,less<T> > X);
    set<T,less<T> > difference(set<T,less<T> > X);
};



template <class T> mt_set<T>::mt_set(void)
{
}


template <class T> mt_set<T>::mt_set(set<T, less<T> > X)
{
     S = X;
}

template <class T> set<T, less<T> > mt_set<T>::intersection(set<T,less<T> > X)
{
     set<T,less<T> > Temp;
     less<T> Order;
     lock();
     set_intersection(S.begin(),S.end(),X.begin(),X.end(),
		      inserter(Temp,Temp.begin()),Order);
     unlock();
     return(Temp);
}

template <class T> set<T, less<T> > mt_set<T>::setUnion(set<T,less<T> > X)
{
     less<T> Order;
     set<T,less<T> > Temp;
     lock();
     set_union(S.begin(),S.end(),X.begin(),X.end(),
		      inserter(Temp,Temp.begin()),Order);
     unlock();
     return(Temp);
}


template <class T> int mt_set<T>::membership(set<T,less<T> > X)
{

     return(includes(S.begin(),S.end(),X.begin(),X.end()));
}


template <class T> set<T, less<T> > mt_set<T>::difference(set<T,less<T> > X)
{
     set<T,less<T> > Temp;
     less<T> Order;
     lock();
     set_difference(S.begin(),S.end(),X.begin(),X.end(),
		      inserter(Temp,Temp.begin()),Order);
     unlock();
     return(Temp);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -