当键不存在时,映射给出的值
Value given by map when key does not exsist
假设我有以下函数:
bool canConstruct(string ransomNote, string magazine) {
unordered_map<char, int> map(26);
for (int i = 0; i < magazine.size(); ++i)
++map[magazine[i]];
for (int j = 0; j < ransomNote.size(); ++j)
if (--map[ransomNote[j]] < 0)
return false;
return true;
}
现在假设如果ransomNote
有一个地图中不存在的元素,我通过阅读文档和问题来理解:
如果我在键不存在的情况下读取地图的值,会发生什么情况?
构造一个新的默认键,其值为' '
。现在,在第二个for循环中引用键时,如何将值初始化为零?
与键对应的值变化是如何发生的?
有没有相同的文档?
构造
一个新的默认键,其值为
' '
。
不,这是错误的。char
的"默认">值是0
,就像任何其他整数数字类型一样。
有没有相同的文档?
此处详细记录了std::map::operator[]
的行为。
例如,如果您阅读此operator[]
引用,您将看到它基本上将数据元素创建为T()
。这称为值初始化,对于像char
这样的整数类型,这意味着它将初始化为零。
相关文章:
- 我们可以访问一个不存在的联盟的成员吗
- C++:对不存在的命名空间使用命名空间指令
- g++ 说函数不存在,即使包含正确的标头
- 显式 std::exception_ptr 转换为 bool 不存在.VS2010 错误?
- C++ 尝试在不存在的构造函数中引用已删除的函数(使用 rapidJson)
- 查找第一个数组中不存在的元素
- 查找不存在的键时,unordered_map返回什么
- 类中的C++映射不会保存新键
- 如何优化代码以返回最接近给定整数的数字,但给定列表中不存在?
- C++映射不删除元素
- set::find 查找不存在的元素
- 有没有办法将字符串添加到 Vector 中,但前提是它尚不存在?->C++
- inet_ntop返回不存在的地址
- CPP 使用不存在的键访问映射
- 为什么QMediaGaplessPlaybackControl不存在?
- 如果键不存在,使用 [] 运算符访问 STL Map 元素会添加新元素
- 当键不存在时,映射给出的值
- 为什么要对 map::find 应用不存在的键将返回一个C++中第一个值映射大小的迭代器
- 映射和节点,错误智能感知:不存在从"const std::pair<const int, double>"到"Node"的合适用户定义转换
- 当键不存在时,对象的C++映射将被擦除