set multiset 是c++98中引入的二叉树数据结构
namespace std{
template<typename T,typename Compare = less<T>,typename Allocator =allocator<T>>
class set;
template<typename T,typename Compare = less<T>,typename Allocator =allocator<T>>
class multiset;
}
set存储的是不重复的元素,自动将元素排序,插入和删除查找o(logn),1000个元素大概查找20次,元素必须支持严格的弱排序
(1)x<x 恒等于false
(2)x<y ==true y<x ==false
set中元素的值不能够被改变
//算法函数
using Group = set<float>;
Group a;
auto num = a.count(1.0f); //set中查找元素是否存在,返回0或1
//multiset count 返回的值是>=0, 存在返回他所存在的数量
//对于返回的迭代器的值一定要判断是否有效
auto findTter = a.find(1.0f); //返回的是迭代器 还得做一次比较才知道是否存在
if(findIter == a.end()){
// not finded
}else{
*findTter;
}
auto lower = a.lower_bound(1.0f); //返回低端部分,返回的是迭代器
auto upper = a.upper_bound(1.0f);
//假如要查找1.0,set中已经存在了,lower_bound返回的值是大于等于1.0值的位置,upper_bound返回
//的值是大于1.0位置的值