标签:元素 include 一个 第一个 erase 排序 ace clu oat
集合set:每个元素最多只出现一次,并且set中的元素已经从小到大排好序。
1.头文件include<set>
2. begin() 返回set容器的第一个元素的地址,想取元素就要加*
3.end() 返回set容器的最后一个元素地址,想取元素就要加*
4.clear() 删除set容器中的所有的元素
5.empty() 判断set容器是否为空,返回布尔类型
6.max_size() 返回set容器可能包含的元素最大个数,按字节算的,long long和double的最大元素个数一样,int和float一样
7.size() 返回当前set容器中的元素个数,在c++中也可以当做判断集合是否为空的标准
8.insert(a) 插入元素,会自动排序
9.find(a)(不实用)如果找得到,返回元素的迭代器,找不到就返回se.end(), (最后一个元素的下一个位置,se为set的变量名)
10.count(a) 如果存在元素,返回1,否则返回0,相当于判断元素存不存在
11.erase(a)删除集合中的元素a erase(it)删除集合中it迭代器处的元素 erase(it1,it2) 删除从迭代器it1到it2之间的元素
12.遍历输出迭代器,类似指针,当做是专门用在stl里面的就行
代码举例:
#include<stdio.h> #include<iostream> #include<set> using namespace std; int main() { set<int>se; se.insert(-5); se.insert(-1); se.insert(3); se.insert(1); se.insert(1);///重复插入 se.insert(7); se.insert(5);///无序插入 printf("now size =%d\n",se.size()); ///遍历输出是有序的 for(set<int>::iterator it=se.begin();it!=se.end();it++) printf("%d\t",*it); printf("\n\n"); printf("it‘s first num is %d\n\n",*se.begin()); printf("it‘s end num is %d\n\n",*se.end()); se.erase(7);///直接删除元素 printf("7 is deleted,now size = %d\n\n",se.size()); se.erase(se.begin());///通过迭代器删除元素 printf("the first number is deleted,now size = %d,and it‘s first num is %d\n\n",se.size(),*se.begin()); printf("1 is found %d time\n\n",se.count(1)); printf("999 is found %d time\n\n",se.count(999)); se.clear(); printf("after se.clear(),size=%d\n",se.size()); return 0; }
标签:元素 include 一个 第一个 erase 排序 ace clu oat
原文地址:https://www.cnblogs.com/shoulinniao/p/9520301.html