我喜欢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/