STL中的set和multiset

 注意:

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 ", v.size());
  printf("%d ", s.size());
  return 0;
}

三、set和map的区别

set支持大部分的map的操作,但是set不支持下标的操作,而且没有定义mapped_type类型。

原文地址:https://www.cnblogs.com/sunshine1218/p/12081478.html