#stack #vec #vector #small #no-std

no-std smallvec

小向量优化:在栈上存储少量项目

48 个版本 (21 个稳定版)

2.0.0-alpha.72024 年 7 月 27 日
2.0.0-alpha.52024 年 3 月 23 日
2.0.0-alpha.12023 年 11 月 7 日
1.13.2 2024 年 3 月 20 日
0.1.5 2015 年 6 月 30 日

#11 in 数据结构

Download history 2497187/week @ 2024-05-04 2594921/week @ 2024-05-11 2646028/week @ 2024-05-18 2457210/week @ 2024-05-25 2652852/week @ 2024-06-01 2817156/week @ 2024-06-08 2710352/week @ 2024-06-15 2662214/week @ 2024-06-22 2369840/week @ 2024-06-29 2739903/week @ 2024-07-06 2736699/week @ 2024-07-13 2859534/week @ 2024-07-20 2908994/week @ 2024-07-27 2959590/week @ 2024-08-03 3131472/week @ 2024-08-10 2571346/week @ 2024-08-17

12,054,564 每月下载量
用于 39,000 个 crate (1,501 直接)

MIT/Apache

105KB
2.5K SLoC

rust-smallvec

⚠️ 注意: 这是在 2.0 版本中的代码,尚未准备发布。有关 2.0 版本更改的详细信息,请参阅 #183#240#284

最新 smallvec 1.x.y 版本的源代码可以在 v1 分支 上找到。smallvec 1 的错误修复应基于该分支,而新功能开发应在 v2 分支上。

关于 smallvec

文档

发行说明

Rust 中的“小向量”优化:在栈上存储少量项目

示例

use smallvec::{SmallVec, smallvec};
    
// This SmallVec can hold up to 4 items on the stack:
let mut v: SmallVec<i32, 4> = smallvec![1, 2, 3, 4];

// It will automatically move its contents to the heap if
// contains more than four items:
v.push(5);

// SmallVec points to a slice, so you can use normal slice
// indexing and other methods to access its contents:
v[0] = v[1] + v[2];
v.sort();

依赖关系

~170KB