#rotate #stl #cpp

stl_rotate

C++ std::rotate对于Vec类型,使用范围代替first, .., last

2个不稳定版本

0.2.0 2020年4月1日
0.1.0 2020年3月30日

#10 in #rotate

MIT 许可证

4KB

stl_rotate

Rust中C++ stl::rotate的实现(使用范围代替first, .., last)。

通过范围从向量中选择元素,并旋转选定的元素,使得所选索引成为该范围中的第一个索引,所有先前元素被推回到范围的末尾。

示例

// [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
let mut v: Vec<usize> = (0..10).collect();

// Rotate all elements with indices 0 to 9 such that index 5 becomes first element:
v.rotate(0..10, 5);

// [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]
assert!(v == [5, 6, 7, 8, 9, 0, 1, 2, 3, 4]);

无运行时依赖