注意:
1、count() 常用来判断set中某元素是否存在,因为一个键值在set只可能出现0或1次。
2、erase()用法
erase(iterator) ,删除定位器iterator指向的值
erase(first,second),删除定位器first和second之间的值
erase(key_value),删除键值key_value的值
3、set具有自动去重的功能。
二、set对象定义和初始化
set<T> s;
set<T> s(s1);
set<T> s(b, e); 注意:其中,b和e分别为迭代器的开始和结束的标记。
例如:
int main(){
vector<int> v;
for (int i = 0; i < 10; i++){
v.push_back(i);
}
set<int> s(v.begin(), v.end()); // 注意key不能重复
printf("%d\n", v.size());
printf("%d\n", s.size());
return 0;
}
三、set和map的区别
set支持大部分的map的操作,但是set不支持下标的操作,而且没有定义mapped_type类型。