#include<iostream.h>
#include<LINK/basic/Array.h>
#include<LINK/basic/MSet.h>
#include<LINK/basic/Set.h>

main()
{
	MSetBase<int, SortedArray<int> > mset1;
	MSet<int> mset2;			// default impl:SortedList

	for (int i=0; i<3; i++) {
		mset1.insert(i);
		mset2.insert(i);
	}

	mset2.insert(0);
	cout<<"there are "<<mset2.occurrences(0)<<" zeros in "<< mset2<<endl;

	if (mset1.properSubsetQ(mset2))
		cout << mset1 << " is a proper subset of " << mset2 << endl;
	if (mset1.subsetQ(mset2))
		cout << mset1 << " is a subset of " << mset2 << endl;

	mset2.remove(0);

	if (mset1.properSubsetQ(mset2))
		cout << mset1 << " is a proper subset of " << mset2 << endl;
	if (mset1.subsetQ(mset2))
		cout << mset1 << " is a subset of " << mset2 << endl;

}
