我通过emplace()或insert()读取了现有键的STL does not allow to overwrite值Map
但是,当应用具有不同值的现有密钥时,它看起来像UE4 TMap的Emplace()一样可以覆盖。
我理解正确吗,还是在TMap中也不应进行覆盖?
答案 0 :(得分:1)
请记住,虚幻引擎的TMap
不等同于C ++的map
。您已经弄清楚了,但是Emplace
类中的TMap
方法与emplace
类中C ++的map
方法的不同之处在于调用Emplace
使用地图中已存在的键替换该键关联的原始值。
对于TMap
类,Emplace
方法的目的是避免为要插入映射中的键和值创建非原始类型的副本。请注意,Emplace
仅适用于具有单个参数构造函数的对象类型的键和值。否则,Emplace
方法的行为类似于Add
方法。