#vec #drain #retain #no-std #drain-filter

no-std vec_mut_scan

在向量和项目删除时进行前向扫描

5个版本 (破坏性)

0.5.0 2023年4月16日
0.4.0 2021年1月17日
0.3.0 2020年9月8日
0.2.0 2020年8月24日
0.1.0 2019年5月16日

#1504算法

Download history 4188/week @ 2024-03-14 4606/week @ 2024-03-21 4338/week @ 2024-03-28 4411/week @ 2024-04-04 4814/week @ 2024-04-11 4608/week @ 2024-04-18 4631/week @ 2024-04-25 4473/week @ 2024-05-02 3548/week @ 2024-05-09 4080/week @ 2024-05-16 4435/week @ 2024-05-23 4388/week @ 2024-05-30 4648/week @ 2024-06-06 5343/week @ 2024-06-13 5002/week @ 2024-06-20 3705/week @ 2024-06-27

每月下载量 19,520
18 个crate中使用 (via varisat)

0BSD 许可证

42KB
566

vec_mut_scan

github crates.io docs.rs

在向量和项目删除时进行前向扫描。

提供了一个类似迭代器的包装器 VecMutScan,它可以在其上执行修改和删除项目,同时保持项目顺序,并且每个项目最多移动一次,即使删除了项目。迭代过程中丢弃 VecMutScan 会在向量中保留剩余的项目。

这可以视为 Vecretaindrain 的扩展。它也非常类似于不稳定版本 drain_filter,但稍微更灵活。与 drain_filter 不同,它指定了删除行为(保留所有后续元素)。它也不需要在闭包中执行过滤,这提供了额外的灵活性,但牺牲了无法实现 Iterator 特性。

还提供了一个 VecGrowScan 包装器,它扩展了 VecMutScan 以允许在迭代过程中插入项目。这可能需要额外的项目移动和临时存储,但仍然以线性时间运行。

许可证

此软件可在Zero-Clause BSD许可证下使用,有关完整的许可信息和例外情况,请参阅COPYRIGHT

贡献

除非您明确声明,否则您提交的任何有意包含在此软件中的贡献都应按照COPYRIGHT 中定义的许可证进行许可。

无运行时依赖项