在实现算法中,一个非常常见的操作是循环旋转:给定的3个变量a,b,c将它们更改为c ⇽ ba ⇽ t
考虑到一切都是按位可交换的,循环旋转应该是一个比我所知道的任何其他语言都更有优势的领域相比之下,在C++中,旋转N个元素的最有效的通用方法是执行n+1 std::move操作,这反过来会大致导致(对于典型的移动构造器实现) 3 (n+1) sizeof(
据我所知,标准(只有?)在Rust中创建空指针的方法是std::ptr::null。 但是,该函数声明如下。pub const fn null<T>() -> *const T 在此声明中,隐式假设T具有固定大小(否则,它将为T: ?Sized)。因此,例如在*const str或*const [u32]中不可能使用此函数。test it in the playground 排除未