TMap::Emplace() 在应用现有密钥时会覆盖吗?

Does TMap::Emplace() overwrite when existing key is applied?

本文关键字:密钥 覆盖 Emplace 应用 TMap      更新时间:2023-10-16

我读了 STL 的地图不允许通过 emplace(( 或 insert(( 覆盖现有键的值

但是,看起来UE4 TMap的Emplace((允许在应用具有不同值的现有键时进行覆盖。

我理解正确,还是不应该在 TMap 中发生覆盖?

请记住,虚幻引擎的TMap并不等同于C++的map。您已经弄清楚了,但是TMap类中的Emplace方法确实与map类中C++的emplace方法不同,因为使用映射中已存在的键调用Emplace将替换与该键关联的原始值。

对于TMap类,Emplace方法的目的是避免为要插入到映射中的键和值创建非基元类型的副本。请注意,Emplace仅适用于具有单个参数构造函数的对象类型的键和值。否则,Emplace方法的行为类似于Add方法。