unordered_map中的小知识
unordered_map 将 key的某种类型 通过哈希函数映射成 size_t 即可 等价成数组
例如:unordered_map<string,int> map中的键(key)string 通过hash函数转化成特定的size_t(unsigned int)类型,即和vector没太大区别
对某些没有默认哈希函数的类型可以自定义哈希函数,例如下列函数:
1 | // 通过 对int类型的默认哈希函数 自定义 对array<int, 26> 类型的哈希函数 |
上述函数用到的lambda表达式
lambda:lambda本质上是一个普通的函数,只是它不像普通函数这样声明,
它是我们的代码在过程中生成的,用完即弃的函数,不算一个真正的函数,是匿名函数 。
格式:[] ({形参表}) {函数内容} / ->返回类型{函数内容}
中括号表示的是捕获,作用是如何传递变量 lambda使用外部(相对)的变量时,就要使用捕获。
如果使用捕获,则:
添加头文件: #include< functional >
捕获[]使用方式:
[=],则是将所有变量值传递到lambda中
[&],则是将所有变量引用传递到lambda中
[a]是将变量a通过值传递,如果是[&a]就是将变量a引用传递
它可以有0个或者多个捕获
原文链接: https://kettycode.github.io/2024/02/19/cpp/tip/hash/
版权声明: 转载请注明出处.