//review the set
#include <iostream>
#include <set>
using namespace std;
int main(void)
{
//定义方式
//set<typename> name;
set<int> s;
//typename 也可以是STL容器或者结构体,若是STL容器记得尖括号中间留下空格
//set arry -- set数组
//set<typename> name(arry size); 此时从name[0]~name[arry size - 1]皆为set容器
//push element in set
//set会自动删除重复的元素,并递增排序
s.insert(7);
s.insert(7);
s.insert(2);
s.insert(2);
s.insert(3);
s.insert(3);
s.insert(1);
s.insert(1);
set<int>::iterator it = s.begin();
//set 的元素只能通过迭代器访问
//不能这样访问 name[i] or *(it + i)
//科普一下:在STL容器中只有vector或者string才能这么访问 *(it + i)
cout<<"递增排序并删除重复的元素:";
for(;it != s.end();it++){
cout<<*it<<' ';
}
cout<<endl;
//查找一个元素是否在set里面
it = s.find(2);
cout<<"s.find(2) : "<<*it<<endl;
//如果没有找到有些返回end()的迭代器 。有些编译器他返回元素个数比如DEV
//或许也是C++标准不同的缘故
//return element number
cout<<"return element number "<<s.size()<<endl;
//delete one data
s.erase(it);
s.erase(3);
//可以是迭代器,也可以是值
//delete any data -- 删除一个区间的数据,用迭代器,注意第二个参数是指定元素的下一个迭代器
s.erase(s.begin(),s.end());
//delete all data
s.clear();
return 0;
}
cs