C++ Set常用用法ITeyefenghuang - 凯发娱乐

C++ Set常用用法ITeyefenghuang

2019-02-01 11:30:22 | 作者: 姿诺 | 标签: 元素,键值,检索 | 浏览: 1775

set调集容器:完成了红黑树的平衡二叉检索树的数据结构,刺进元素时,它会主动调整二叉树的摆放,把元素放到恰当的方位,以确保每个子树根节点键值大于左子树一切节点的键值,小于右子树一切节点的键值;别的,还得确保根节点左子树的高度与右子树高度持平。
平衡二叉检索树运用中序遍历算法,检索功率高于vector、deque和list等容器,别的运用中序遍历可将键值依照从小到大遍历出来。
结构set调集首要意图是为了快速检索,不行直接去修正键值。

常用操作:
1.元素刺进:insert()
2.中序遍历:相似vector遍历(用迭代器)
3.反向遍历:使用反向迭代器reverse_iterator。
例:
set int
......
set int ::reverse_iterator rit;
for(rit=s.rbegin();rit!=s.rend();rit++)
4.元素删去:与刺进相同,能够高效的删去,并主动调整使红黑树平衡。
set int
s.erase(2); //删去键值为2的元素
s.clear();
5.元素检索:find(),若找到,回来该键值迭代器的方位,不然,回来最终一个元素后边一个方位。
set int
set int ::iterator it;
it=s.find(5); //查找键值为5的元素
if(it!=s.end()) //找到
cout *it endl;
else //未找到
cout "未找到";
6.自定义比较函数
(1)元素不是结构体:
例:
//自定义比较函数myComp,重载“()”操作符
struct myComp
{
bool operator()(const your_type a,const your_type b)
[
return a.data-b.data
}
}
set int,myComp
......
set int,myComp ::iterator it;
(2)假如元素是结构体,能够直接将比较函数写在结构体内。
例:
struct Info
{
string name;
float score;
//重载“ ”操作符,自定义排序规矩
bool operator (const Info a) const
{
//按score从大到小摆放
return a.score score;
}
}
set Info
......
set Info ::iterator it;

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯发娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章

阅读排行

  • 1
  • 2
  • 3

    rails 对 URL的一些处理sina

    办法,途径,地址
  • 4
  • 5
  • 6

    Obsolete特点sohu

    特点,正告,运用
  • 7
  • 8

    JAVA根底 之 JDBCITeyetengxun

    数据库,根底,运用
  • 9
  • 10