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;
}