[关闭]
@ysner 2018-10-30T23:59:17.000000Z 字数 1345 阅读 1762

关于set

set


功能

支持修改、删除、排序、去重等操作。

定义

  1. include<set>
  2. struct node{...};//在里面制定比较规则,否则就是按从小到大
  3. set<node>s;
  4. set<node>::iterator it;

前置说明

如果函数括号里面是iterator,说明要写
如果是key_value,说明写数字就成。
定位器前加能代表中第个数。

函数

  1. pair<set<int>::const_iterator,set<int>::const_iterator> pr;
  2. pr = s.equal_range(3);
  3. cout<<"第一个大于等于 3 的数是 :"<<*pr.first<<endl;
  4. cout<<"第一个大于 3的数是 : "<<*pr.second<<endl;
  1. \\方法一
  2. s.erase(s.begin());
  3. \\方法二
  4. s.erase(s.begin(),s.begin+?);
  5. \\方法三
  6. s.erase(8);

(说人话,就是删除first~second之间的数)
Pay attention :由于不自带错误检查,小心RE
- find()返回定位器,如果没找到则返回end()。

  1. set<int>::iterator iter;
  2. if((iter = s.find(2)) != s.end())
  3. {
  4. cout<<*iter<<endl;
  5. }
  1. cout<<*s.lower_bound(2)<<endl;

遍历

别忘了第一句!!!

  1. if(!E[u].empty())
  2. for(it=E[u].begin();it!=E[u].end();++it)

返回值

如果你要输出函数的返回值,要在前面加个

  1. cout<<*s.begin()<<endl;

如果你要把返回值存在变量里,就要这样定义

  1. set<node> :: iterator it;

还有存的变量

  1. pair<set<int>::const_iterator,set<int>::const_iterator> pr;

拓展

用法大体类似(连头文件都没变)
不过

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注