c++ STL 集合set使用

147 阅读1分钟

set的基本用法


int main(){
	//初始化,注意没有等号 
	set<int> a({2,3,44,11,0});
	//插入
	a.insert(3);
	a.insert(8);
	a.insert(5);
	
	//遍历
	//使用迭代器,注意*i 
	for(auto i=a.begin();i!=a.end();i++){
		cout<<*i<<' ';
	}
	cout<<endl;
        
	for(auto i : a ){
		cout<<i<<' ';
	} 
	cout<<endl;
	
	//删除
	//用可以传入关键词 
	a.erase(5); 
	
	//查找元素
	for(auto i=a.end();i!=a.begin();i--){
		//如果存在3,输出1,不存在输出0 
		cout<<(a.find(3)!=a.end())<<endl;
	}	
	
	 

	
	return 0;
} 

unordered_set的使用

对于unodered_set,不仅不进行排序,里面的数据还是乱序的

int main(){
	
	unordered_set<int> a;
	for(int i=0;i<10;i++){
		a.insert(i);
	}

	a.insert(100);

	for(auto i=a.begin();i!=a.end();i++){
		
		cout<<*i<<endl;
	}
	
	
	return 0;
} 

输出

0
1
2
3
4
5
6
7
100
8
9

使用set 与pair

这里使用pair不用struct,因为set里面的struck过于复杂

int main(){
	
	set<pair<int ,int>> a;
        //插入
	for(int i=0;i<10;i++){
		a.insert({i,i*2});
	}
        
	//遍历
	for(auto i=a.begin();i!=a.end();i++){
		//i是个指针 
		cout<<i->first<<" "<<i->second<<endl;
	}
	
	
	return 0;
}