#include
using std::set;
set可以实现内部自动有序且不含重复元素的容器
1.set的定义 set
注意事项等同vector
2.set容器内元素的访问不同于vector,set内元素只能通过迭代器访问,并且不支持迭代器加整数的行为,如(it+i)i为整数这种写法是不允许的
遍历方式只能是
for(set
注意:迭代器不支持it insert(x)将x插入set容器中,并自动递增排序和去重,时间复杂度为O(logn),n为set中元素个数 find(value)返回对应值为value的迭代器,时间复杂度为O(logn),n为set中元素个数 set ①si.erase(it),it为待删除元素的迭代器。时间复杂度为O(1),可结合find()使用 si.erase(si.find(200));//删除值为200的元素,erase为O(1),find为O(logn) ②si.erase(value),value为一个值。删除值value的元素,时间复杂度O(logn) si.erase(200);//删除值为200的元素,时间复杂度O(logn) ③si.erase(first,last),删除[first,last)左闭右开区间的元素,时间复杂度O(last-first) set 时间复杂度O(1) 时间复杂度O(n) 自动去重并升序排序 如果需要使用不去重的情况,使用multiset 如果需要使用不排序的情况,使用unordered_set(速度远高于set)