Apollo 11.0
自动驾驶开放平台
apollo::perception::lidar::Universe类 参考

#include <disjoint_set.h>

apollo::perception::lidar::Universe 的协作图:

Public 成员函数

 Universe (int elements)
 
 ~Universe ()
 
int find (int x)
 Find parent of x
 
void join (int x, int y)
 Join set x and set y
 
int size (int x) const
 Get size of set x
 
int num_sets () const
 Get set number
 

详细描述

在文件 disjoint_set.h49 行定义.

构造及析构函数说明

◆ Universe()

apollo::perception::lidar::Universe::Universe ( int  elements)
explicit

在文件 disjoint_set.h90 行定义.

90 {
91 _elts = new uni_elt[elements];
92 _num = elements;
93 for (int i = 0; i < elements; i++) {
94 _elts[i].rank = 0;
95 _elts[i].size = 1;
96 _elts[i].p = i;
97 }
98}

◆ ~Universe()

apollo::perception::lidar::Universe::~Universe ( )

在文件 disjoint_set.h100 行定义.

100 {
101 delete[] _elts;
102}

成员函数说明

◆ find()

int apollo::perception::lidar::Universe::find ( int  x)

Find parent of x

参数
x
返回
int

在文件 disjoint_set.h104 行定义.

104 {
105 int y = x;
106 while (y != _elts[y].p) {
107 y = _elts[y].p;
108 }
109 _elts[x].p = y;
110 return y;
111}

◆ join()

void apollo::perception::lidar::Universe::join ( int  x,
int  y 
)

Join set x and set y

参数
x
y

在文件 disjoint_set.h113 行定义.

113 {
114 if (_elts[x].rank > _elts[y].rank) {
115 _elts[y].p = x;
116 _elts[x].size += _elts[y].size;
117 } else {
118 _elts[x].p = y;
119 _elts[y].size += _elts[x].size;
120 if (_elts[x].rank == _elts[y].rank) {
121 _elts[y].rank++;
122 }
123 }
124 _num--;
125}

◆ num_sets()

int apollo::perception::lidar::Universe::num_sets ( ) const
inline

Get set number

返回
int

在文件 disjoint_set.h81 行定义.

81 {
82 return _num;
83 }

◆ size()

int apollo::perception::lidar::Universe::size ( int  x) const
inline

Get size of set x

参数
x
返回
int

在文件 disjoint_set.h73 行定义.

73 {
74 return _elts[x].size;
75 }

该类的文档由以下文件生成: