![](/img/trans.png)
[英]How can I in-place construct an object of some class in an std::unorderd_map?
[英]Can I in-place construct in Rust?
我喜欢 C++ 中的 emplace emplace()
ing,它可以节省移动构造和破坏:例如strings.push_back("abcd"s)
意味着
建造、移动、破坏临时物
而strings.emplace_back("abcd")
只是“构造”。
可以在 Rust 中实现类似的东西吗(也许通过编译器优化)? 通常的vec.push(String::from("abcd"))
看起来像(在 C 中)
构造 + 内存复制()
我也对比将字符串推入向量更复杂的情况感兴趣。
我认为emplace
功能主要由 C++ 中的placement-new功能支持,几年前从 Rust 中删除了类似的不稳定功能。因此,不,不可能用高级代码做类似的事情。
尽管如此,您仍然可以使用ptr::write
并在不安全代码中实现相同的行为。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.