#include <set>
#include <string>
#include <iostream>
using namespace std;
int main (int argc, char* argv[])
{
set <string> mySet;
mySet.insert ("first string");
mySet.insert ("second string");
mySet.insert ("third string");
mySet.insert ("fourth string");
mySet.insert ("fifth string");
mySet.insert ("sixth string");
mySet.insert ("seventh string");
mySet.insert ("eighth string");
mySet.insert ("duplicated String");
mySet.insert ("duplicated String");
mySet.insert ("duplicated String");
mySet.insert ("duplicated String");
mySet.insert ("duplicated String");
mySet.insert ("duplicated String");
mySet.insert ("duplicated String");
int c = mySet.count ("duplicated String");
cout << "Set Count: " << c << endl;
set < string>::iterator iter = mySet.begin ();
cout << "Set contents:" << endl;
while (iter != mySet.end ())
{
cout << *iter++ << endl;
}
set < string >::iterator i = mySet.find ("a");
if (i == mySet.end ())
cout << "String \'a\' Not found." << endl;
else
cout << "String \'a\' found." << endl;
i = mySet.lower_bound ("d"); // val is not less than e.
if (i != mySet.end ())
cout << "Lower Bound for \'d\' is \'" << *i << "\'" << endl;
else
cout << "All values are less than \'d\'" << endl;
i = mySet.upper_bound ("e"); // d is less than val
if (i != mySet.end ())
cout << "Upper Bound for \'e\' is \'" << *i << "\'" << endl;
else
cout << "All values are less than \'e\'." << endl;
multiset <string> mSet;
mSet.insert ("first string");
mSet.insert ("second string");
mSet.insert ("third string");
mSet.insert ("fourth string");
mSet.insert ("fifth string");
mSet.insert ("sixth string");
mSet.insert ("seventh string");
mSet.insert ("eighth string");
mSet.insert ("duplicated String");
mSet.insert ("duplicated String");
mSet.insert ("duplicated String");
mSet.insert ("duplicated String");
mSet.insert ("duplicated String");
mSet.insert ("duplicated String");
mSet.insert ("duplicated String");
c = mSet.count ("duplicated String");
cout << "Multiset Count: " << c << endl;
multiset < string>::iterator miter = mSet.begin ();
cout << "Set contents:" << endl;
while (miter != mSet.end ())
{
cout << *miter++ << endl;
}
return 0;
}