mtset.cpp

来自「这是c++编程方面的名著的例子代码」· C++ 代码 · 共 88 行

CPP
88
字号
#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 + =
减小字号Ctrl + -
显示快捷键?