在对 unordered_map 使用 [] 运算符时,如果键不存在,如何构造值对象?
How is the value object constructed in case key is not present while using [] operator for an unordered_map?
在unordered_map中,当我们使用[]运算符获取键的值时,如果键不存在,它会执行插入。我想了解它是如何实现的。
std::unordered_map<int, int> x;
x[1] = 10;
在上面的语句中,右值10是如何访问并用于执行插入的?
非常直接。
std::map
和 std::unordered_map
的运算符 []
查找具有给定键的元素。如果元素存在,它 returns 对 second
成员的引用。如果它不存在,它会创建一个新的对,键 (first
) 等于给定的键和 value-initialized second
,插入这个元素和 returns 引用second
.
那么operator=
就可以正常工作了
在unordered_map中,当我们使用[]运算符获取键的值时,如果键不存在,它会执行插入。我想了解它是如何实现的。
std::unordered_map<int, int> x;
x[1] = 10;
在上面的语句中,右值10是如何访问并用于执行插入的?
非常直接。
std::map
和 std::unordered_map
的运算符 []
查找具有给定键的元素。如果元素存在,它 returns 对 second
成员的引用。如果它不存在,它会创建一个新的对,键 (first
) 等于给定的键和 value-initialized second
,插入这个元素和 returns 引用second
.
那么operator=
就可以正常工作了