Bootstrap

set&&mutiset

视频和之前一样,bilibili上搜c++stl就行

#include<iostream>
using namespace std;
//#include<pair>

//size
//empty 
//insert
//erase
//clear
//find(x)         :查找//x是否在set之中出现
//count(x)        :统计//x在set之间出现次数
//lower_bound(x)  :以迭代器的方式返回第一个key>=x上限 
//upper_bound(x)  :以迭代器的方式返回第一个key>x 下限 
//equal_bound(x)  :返回      返回上下限,用pair接着 

#include<set>

//set 和 multiset 基本一样,就是set不能重复,multiset可以有重复的键 

void prints(set<int>s)
{
	set<int>::const_iterator it=s.begin();
	while(it!=s.end())
	{
		cout<<*it<<" ";
		it++;
	}
	cout<<endl;
}

void t1()
{
//	set<type ,排序规则且为type>s;
    set<int>s;
	for(int i=1;i<=5;i++)s.insert(i);
    cout<<"s=";prints(s);
	
	set<int>s1;s1=s;
	cout<<"s1=";prints(s1);
	
	cout<<"s.empty()="<<s.empty()<<endl;
	
	set<int>::const_iterator it = s.find(2);
	cout<<*it<<endl;
	
//	it=s.find(100);
//	cout<<*it<<endl;
//看文献说find时间复杂度o(log n),count 时间复杂度(n)
//能用find就用find

    cout<<"s.count(5)="<<s.count(5)<<endl<<"s.count(100)="<<s.count(100)<<endl; 

    cout<<"*s.lower_bound(3)="<<*s.lower_bound(3)<<endl;
	cout<<"*s.upper_bound(3)="<<*s.upper_bound(3)<<endl; 
    
    
    pair<set<int>::const_iterator,set<int>::const_iterator>pa;
    pa=s.equal_range(3);
    if(pa.first != s.end())
    cout<<"*(pa.first)="<<*(pa.first)<<endl;
    if(pa.second !=s.end())
    cout<<"*(pa.second)="<<*(pa.second)<<endl;;
}


void t2()
{
	multiset<int>m;
	for(int i=1;i<=5;i++)
	m.insert(i);
	m.insert(1);m.insert(1);m.insert(1);
	m.insert(1);m.insert(1);m.insert(1);
	
	multiset<int>::const_iterator it=m.begin();
	while(it!=m.end())
	{
		cout<<*it<<" ";
		it++;
	}
	cout<<endl;
} 
int main()
{
//	t1();
//    t2();
         printf("青宝~我爱你!!"); 
	return 0;
}

;