#numbers #heap-allocation #vec #stack #contain

one-stack-vec

OneStackVec 可以包含任何数量的项,就像 Vec 一样,只有当它包含多于一个项时才会进行堆分配。

3 个不稳定版本

使用旧的 Rust 2015

0.5.1 2017年6月22日
0.5.0 2017年6月19日
0.4.0 2017年6月12日

#2201 in 数据结构

MIT/Apache

9KB
224

One-Stack-Vec

概述

OneStackVec 是一个简单的数据结构,可以包含任意数量的项。它不会在有一个或零个项时进行堆分配。

如何使用

// Initialize
let mut items = OneStackVec::new();

// Adding
items.add(42);

// Getting
assert_eq!(Some(&42), items.get(0));

// Removing
assert_eq!(Some(&42), items.remove(0));
assert_eq!(None, items.get(0));

lib.rs:

OneStackVec 是一个简单的数据结构,可以包含任意数量的项。如果一个或零个项,ALO 不会进行堆分配。如果有多于一个的项,ALO 会进行堆分配。

示例

use one_stack_vec::OneStackVec;

let mut items = OneStackVec::new();

// Adding
items.push(42);

// Getting
assert_eq!(Some(&42), items.get(0));

// Removing
assert_eq!(Some(42), items.pop());
assert_eq!(None, items.pop());

依赖项

~110–350KB