3 ms·
Expand does actually exist in the standard library, but it's a bit of a strange incantation... vec.splice(i..i, std::iter::repeat(0).take(length)); This r
by Dr_Emann 6y ago
Expand does actually exist in the standard library, but it's a bit of a strange incantation...
vec.splice(i..i, std::iter::repeat(0).take(length));
This replaces the values in range `i..i` (an empty range starting at i) with `length` copies of `0`.
- Measter 6y agoThat's not exactly the same. Splice returns an iterator, it doesn't modify the collection in place.
- Dr_Emann 6y agoYes it does exactly that. It returns an iterator over the removed items, but when that iterator is dropped, it modifies the collection. See https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=207a1c4de84ed43608ab774c15c8e5db https://play.rust-lang.org/?version=stable&mode=debug&editio...
- Measter 6y agoHuh... I guess I should read the docs more carefully next time; I clearly misunderstood them.