规范网站建设,wordpress实现分享,企业建站公司服务,温州市网站制作哪家便宜set集合容器#xff1a;实现了红黑树的平衡二叉检索树的数据结构#xff0c;插入元素时#xff0c;它会自动调整二叉树的排列#xff0c;把元素放到适当的位置#xff0c;以保证每个子树根节点键值大于左子树所有节点的键值#xff0c;小于右子树所有节点的键值#xff…set集合容器实现了红黑树的平衡二叉检索树的数据结构插入元素时它会自动调整二叉树的排列把元素放到适当的位置以保证每个子树根节点键值大于左子树所有节点的键值小于右子树所有节点的键值另外还得保证根节点左子树的高度与右子树高度相等。平衡二叉检索树使用中序遍历算法检索效率高于vector、deque和list等容器另外使用中序遍历可将键值按照从小到大遍历出来。构造set集合主要目的是为了快速检索不可直接去修改键值。常用操作1.元素插入insert()2.中序遍历类似vector遍历用迭代器3.反向遍历利用反向迭代器reverse_iterator。例setint s;......setint::reverse_iterator rit;for(rits.rbegin();rit!s.rend();rit)4.元素删除与插入一样可以高效的删除并自动调整使红黑树平衡。setint s;s.erase(2); //删除键值为2的元素s.clear();5.元素检索find()若找到返回该键值迭代器的位置否则返回最后一个元素后面一个位置。setint s;setint::iterator it;its.find(5); //查找键值为5的元素if(it!s.end()) //找到cout*itendl;else //未找到cout未找到;6.自定义比较函数(1)元素不是结构体例//自定义比较函数myComp,重载“”操作符struct myComp{bool operator()(const your_type a,const your_type b)[return a.data-b.data0;}}setint,myComps;......setint,myComp::iterator it;(2)如果元素是结构体可以直接将比较函数写在结构体内。例struct Info{string name;float score;//重载“”操作符自定义排序规则bool operator (const Info a) const{//按score从大到小排列return a.scorescore;}}setInfo s;......setInfo::iterator it;