总结一些的STL函数

有一些常用的不说了

bitset

#include <bits/stdc++.h>
using namespace std;
bitset<10000> h;
int main(){
	h.set();        //全部置为 1 
	h.reset();      //全部置为 0 
	h.flip();       //全部反转 
	h.count();      //返回 1 的个数 
	h.any();        //返回是否有 1 
	h.none();       //返回是否全为 0 
	h.to_ulong();   //转成 unsigned long long 
	h.to_string();  //转成 string 
	return 0;
}

heap

#include <bits/stdc++.h>
using namespace std;
vector<int> a;
int main(){
	a.push_back(7);a.push_back(3);a.push_back(5);a.push_back(9);a.push_back(1);
	a.push_back(12);a.push_back(8);a.push_back(0);a.push_back(4);a.push_back(6);
	for(vector<int>::iterator it=a.begin();it!=a.end();it++) cout<<*it<<" ";cout<<endl;
	
	make_heap(a.begin(),a.end());    //默认大根堆 //make_heap(a+1,a+1+n,cmp);
	for(vector<int>::iterator it=a.begin();it!=a.end();it++) cout<<*it<<" ";cout<<endl;
	
	pop_heap(a.begin(),a.end());a.pop_back();    //先删后弹 
	for(vector<int>::iterator it=a.begin();it!=a.end();it++) cout<<*it<<" ";cout<<endl;
	
	a.push_back(2);push_heap(a.begin(),a.end());   //先插后加 
	for(vector<int>::iterator it=a.begin();it!=a.end();it++) cout<<*it<<" ";cout<<endl;
	
	sort_heap(a.begin(),a.end());    //排完就不是有效堆了,慎用 
	for(vector<int>::iterator it=a.begin();it!=a.end();it++) cout<<*it<<" ";cout<<endl;
	return 0;
}

vector & lower_bound

#include <bits/stdc++.h>
using namespace std;
vector<int> a;
int main(){
	a.push_back(7);a.push_back(3);a.push_back(6);a.push_back(9);a.push_back(1);
	a.push_back(12);a.push_back(8);a.push_back(0);a.push_back(4);a.push_back(6);
	for(vector<int>::iterator it=a.begin();it!=a.end();it++) cout<<*it<<" ";cout<<endl;
	
	sort(a.begin(),a.end());
	int k=lower_bound(a.begin(),a.end(),5)-a.begin();
	printf("%d\n",k);
	return 0;
}

set

#include <bits/stdc++.h>
using namespace std;
set<int> s;
int main(){
	s.insert(1);s.insert(4);s.insert(2);s.insert(7);s.insert(7);
	s.insert(3);s.insert(6);s.insert(7);s.insert(5);s.insert(9);
	for(set<int>::iterator it=s.begin();it!=s.end();it++) cout<<*it<<" ";cout<<endl;
	
	s.erase(s.begin());s.erase(7);
	for(set<int>::iterator it=s.begin();it!=s.end();it++) cout<<*it<<" ";cout<<endl;
	
	set<int>::iterator k=s.find(5);    //返回的是迭代器 
	cout<<*k<<endl;
	
	k=s.lower_bound(6);     //返回的是第一个大于等于val的迭代器 
	cout<<*k<<endl;
	return 0;
}

set

https://blog.csdn.net/weixin_43907802/article/details/99173187


posted @ 2019-11-04 20:00  zxynothing  阅读(68)  评论(0)    收藏  举报