我喜欢C++中的emplace()编码,它可以节省移动构造和破坏: strings.push_back("abcd"s)的意思是



尽管strings.emplace_back("abcd")只是“构造”。

在Rust中可以实现任何类似的功能(也许通过编译器优化)吗?通常的vec.push(String::from("abcd"))看起来像(在C中)



我还对比将字符串插入 vector 更复杂的情况感兴趣。

最佳答案

我认为emplace功能主要由C++中的placement-new功能支持,以及几年前来自Rust的类似不稳定功能was removed。因此,不能,不可能对高级代码进行类似的处理。

但是,您仍然可以使用 ptr::write 并在不安全的代码中实现相同的行为。

关于c++ - 我可以在Rust中就位构建吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62476645/

10-12 14:56
查看更多