总结一些的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
我还是太弱了,你们都太强了。

浙公网安备 33010602011771号