Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
7bd0d715
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7bd0d715
编写于
12月 11, 2012
作者:
D
Daniel Micay
提交者:
Brian Anderson
12月 16, 2012
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
priority_queue: avoid copy with top and maybe_top
上级
e00c3b05
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
12 addition
and
11 deletion
+12
-11
src/libstd/priority_queue.rs
src/libstd/priority_queue.rs
+12
-11
未找到文件。
src/libstd/priority_queue.rs
浏览文件 @
7bd0d715
...
...
@@ -8,10 +8,10 @@ pub struct PriorityQueue <T: Copy Ord>{
impl
<
T
:
Copy
Ord
>
PriorityQueue
<
T
>
{
/// Returns the greatest item in the queue - fails if empty
pure
fn
top
(
&
self
)
->
T
{
self
.data
[
0
]
}
pure
fn
top
(
&
self
)
->
&
self
/
T
{
&
self
.data
[
0
]
}
/// Returns the greatest item in the queue - None if empty
pure
fn
maybe_top
(
&
self
)
->
Option
<
T
>
{
pure
fn
maybe_top
(
&
self
)
->
Option
<
&
self
/
T
>
{
if
self
.is_empty
()
{
None
}
else
{
Some
(
self
.top
())
}
}
...
...
@@ -151,7 +151,7 @@ fn test_top_and_pop() {
let
mut
sorted
=
merge_sort
(
data
,
le
);
let
mut
heap
=
from_vec
(
data
);
while
heap
.is_not_empty
()
{
assert
heap
.top
()
==
sorted
.last
();
assert
*
heap
.top
()
==
sorted
.last
();
assert
heap
.pop
()
==
sorted
.pop
();
}
}
...
...
@@ -160,22 +160,22 @@ fn test_top_and_pop() {
fn
test_push
()
{
let
mut
heap
=
from_vec
(
~
[
2
,
4
,
9
]);
assert
heap
.len
()
==
3
;
assert
heap
.top
()
==
9
;
assert
*
heap
.top
()
==
9
;
heap
.push
(
11
);
assert
heap
.len
()
==
4
;
assert
heap
.top
()
==
11
;
assert
*
heap
.top
()
==
11
;
heap
.push
(
5
);
assert
heap
.len
()
==
5
;
assert
heap
.top
()
==
11
;
assert
*
heap
.top
()
==
11
;
heap
.push
(
27
);
assert
heap
.len
()
==
6
;
assert
heap
.top
()
==
27
;
assert
*
heap
.top
()
==
27
;
heap
.push
(
3
);
assert
heap
.len
()
==
7
;
assert
heap
.top
()
==
27
;
assert
*
heap
.top
()
==
27
;
heap
.push
(
103
);
assert
heap
.len
()
==
8
;
assert
heap
.top
()
==
103
;
assert
*
heap
.top
()
==
103
;
}
#[test]
...
...
@@ -241,11 +241,12 @@ fn test_empty_maybe_pop() {
#[test]
#[should_fail]
fn
test_empty_top
()
{
from_vec
::
<
int
>
(
~
[])
.top
();
}
fn
test_empty_top
()
{
let
empty
=
from_vec
::
<
int
>
(
~
[]);
empty
.top
();
}
#[test]
fn
test_empty_maybe_top
()
{
assert
from_vec
::
<
int
>
(
~
[])
.maybe_top
()
.is_none
();
let
empty
=
from_vec
::
<
int
>
(
~
[]);
assert
empty
.maybe_top
()
.is_none
();
}
#[test]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录