Set使用概要

3483 ワード

#include
#include
#include
#include

using namespace std;
int p[10001];
int t[10001];
//set    
int set01()
{
	set s;
	s.insert(1);
	s.insert(2);
	s.insert(3);
	s.insert(1);
	cout << "set   size    :" << s.size() << endl;
	cout << "set   maxsize    :" << s.max_size() << endl;
	cout << "set          :" << *s.begin() << endl;
	cout << "set          :" << *(--s.end()) << endl;
	s.clear();
	if (s.empty())
	{
		cout << "set    !!!" << endl;
	}
	cout << "set   size    :" << s.size() << endl;
	cout << "set   maxsize    :" << s.max_size() << endl;
	return 0;
}

//count     
int set02()
{
	set st;
	st.insert(1);
	st.insert(2);
	st.insert(3);
	st.insert(1);

	cout << "1    " << st.count(1) << endl;
	cout << "2    " << st.count(2) << endl;
	cout << "5    " << st.count(5) << endl;

	return 0;
	//  count       set           
	//  set          ,          ,
	//                
}

//equal_range     pair                              val    
int set03()
{
	set s;
	set::iterator iter;
	for (int i = 1; i <= 5; ++i)
	{
		s.insert(i);
	}
	for (iter = s.begin(); iter != s.end(); ++iter)
	{
		cout << *iter << " ";
	}
	cout << endl;
	pair::const_iterator, set::const_iterator> pr;
	pr = s.equal_range(3);
	cout << "        3     :" << *pr.first << endl;
	cout << "      3    : " << *pr.second << endl;
	return 0;
}
//erase       1,            ,2,          3,     
int set04()
{
	set s;
	set::const_iterator iter;
	set::iterator first;
	set::iterator second;
	for (int i = 1; i <= 10; ++i)
	{
		s.insert(i);
	}
	//     
	s.erase(s.begin());
	//     
	first = s.begin();
	second = s.begin();
	second++;
	second++;
	s.erase(first, second);
	//     
	s.erase(8);
	cout << "    set      :";
	for (iter = s.begin(); iter != s.end(); ++iter)
	{
		cout << *iter << " ";
	}
	cout << endl;
	return 0;
}
//  insert           pair   ::iterator , bool>
//            ,bool true       .end() bool   false
int set05()
{
	int a[] = { 1,2,3 };
	set s;
	set::iterator iter;
	s.insert(a, a + 3);
	for (iter = s.begin(); iter != s.end(); ++iter)
	{
		cout << *iter << " ";
	}
	cout << endl;
	pair::iterator, bool> pr;
	pr = s.insert(5);
	if (pr.second)
	{
		cout << *pr.first << endl;
	}
	pr = s.insert(1);
	if (!pr.second)
		cout << "  set   5  " << endl;
	return 0;
}

//  lower_bound        key_vale 
//  upper_bound         key_val
int set06()
{
	set myset;
	for (int i = 1; i < 10; i++) myset.insert(i * 10); // 10 20 30 40 50 60 70 80 90

	auto itlow = myset.lower_bound(30);                //       ^
	auto itup = myset.upper_bound(60);





	int a[] = { 1,5,7,9,4 };
	set st;
	st.insert(a, a + 5);

	auto it = st.lower_bound(6);
	cout << *it << endl;
	it = st.upper_bound(6);
	cout << *it << endl;
	return 0;
}
int main()
{
	
	set06();
	

}