|
6#
楼主 |
发表于 2019-11-5 11:26:25
|
只看该作者
set是集合类型,里面数据是按红黑树结构存放的,所以查找删除的效率都很高。
begin() ,返回set容器的第一个元素
end() ,返回set容器的最后一个元素
clear() ,删除set容器中的所有的元素
empty() ,判断set容器是否为空
max_size() ,返回set容器可能包含的元素最大个数
size() ,返回当前set容器中的元素个数
rbegin ,返回的值和end()相同
rend() ,返回的值和rbegin()相同
insert(key_value); 将key_value插入到set中 ,返回值是pair<set<int>::iterator,bool>,bool标志着插入是否成功,而iterator代表插入的位置,若key_value已经在set中,则iterator表示的key_value在set中的位置。
erase(iterator) ,删除定位器iterator指向的值
erase(first,second),删除定位器first和second之间的值
erase(key_value),删除键值key_value的值
find() ,返回给定值值得定位器,如果没找到则返回end()。
inset(first,second);将定位器first到second之间的元素插入到set中,返回值是void.
lower_bound(key_value) ,返回第一个大于等于key_value的定位器
upper_bound(key_value),返回最后一个大于key_value的定位器
set一般用来判断重复,看看set做的三连击
- #include<iostream>
- #include<set>
- using namespace std;
- int x,xx,xxx,y;
- set <int > s;
- int main()
- {
- for (x=100; x<=1000/3; x++) ///枚举
- {
- xx=x+x,xxx=xx+x;///生成
- /// 判断
- s.clear();/// 清零,和数组一样
- y=x/100%10,s.insert(y);
- y=x/10%10,s.insert(y);
- y=x/1%10,s.insert(y);
- y=xx/100%10,s.insert(y);
- y=xx/10%10,s.insert(y);
- y=xx/1%10,s.insert(y);
- y=xxx/100%10,s.insert(y);
- y=xxx/10%10,s.insert(y);
- y=xxx/1%10,s.insert(y);
- s.erase(0);///0不上算
- if (s.size()==9) ///数目检查
- cout<<x<<' '<<xx<<' '<<xxx<<endl;
- }
- return 0;
- }
复制代码
|
|