在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
有关set的一些常用函数 1.begin() / end() 返回首/尾元素迭代器 2.rbegin() / rend() 返回尾/首元素反向迭代器,反向迭代器可以反向遍历容器的迭代器,从下面的程序已经可以看出,正常的迭代器++为顺序遍历,而反向迭代器的效果就是反向迭代器++后,可倒序遍历容器(--则相反)。 3.支持用 '=' 赋值 4.empty() 当前set是否为空 5.size() 返回set大小 6.insert() / erase() 插入/删除一个元素 7.swap() 交换两个set内所有元素 8.clear() 清空当前set 9.find(a,b,c) 返回以a,b为迭代器的区间内值为c的元素的迭代器(a,b可有可无) 10.count(a,b,c) 返回以a,b为迭代器的区间内值为c的元素的个数(a,b可有可无) 11.equal_range(a,b,c) 返回一个pair,pair.first为这个范围的下界,pair.second为这个范围的上界
https://www.luogu.org/problemnew/show/P1059 set裸题= =...
代码: #include<algorithm> #include<iostream> #include<set> #include<cstdio> #include<vector> using namespace std; int main(){ set<int> num; int a,n; scanf("%d",&n); for(register int i=0;i<n;++i){ scanf("%d",&a); num.insert;(a); } printf("%d\n",((n=num.size())?n:n)); set<int>::iterator smax=num.end(); for(set<int>::iterator iter=num.begin();iter!=smax;++iter){ printf("%d ",*iter); } return 0; }
用到了iterator ,用来输出set ; 因为set是用平衡树(红黑树)实现的,所以有序; 所以set可以伪去重,排序,但显然常数巨大,容易被卡,还是手写吧
迭代器用法: xxxxx::iterartor name; //定义一个xxxxx域内的迭代器 *注意循环变量的用法;
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论