作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在阅读实现哈希表的 C++ 代码。尽管以下代码的作用非常清楚,但我无法理解空大括号 {} 在那里的作用。我试图在网上查找但找不到任何东西,很可能是因为我连这个表达式的名字都不知道。
我认为这与 std::equal 函数被类型定义为 key_equal 这一事实有关,但正如我所说,我找不到任何与之相关的东西。
这是家庭作业的一部分,由我不认识的人撰写,因此了解功能比讨论这样做的必要性更重要,尽管我会对此发表评论。
提前致谢!
using key_equal = std::equal_to<key_type>;
bool equals(const key_type& key1, const key_type& key2) const {
return key_equal{}(key1, key2); }
最佳答案
key_equal{}
使用 braced-init-list 实例化类型句法;然后该类型使用两个参数实现 operator()
,并调用该运算符。
关于c++ - 函数调用中参数前的 {} 是什么意思? key_equal{}(key1, key2);,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44221370/
我一直在阅读实现哈希表的 C++ 代码。尽管以下代码的作用非常清楚,但我无法理解空大括号 {} 在那里的作用。我试图在网上查找但找不到任何东西,很可能是因为我连这个表达式的名字都不知道。 我认为这与
我想说,hasher 和 key_equal 之间一定有关系。如果两个元素相同(调用 equal 返回 true)它们必须具有相同的散列,否则将在错误的桶中搜索元素。 但是http://www.cpl
我是一名优秀的程序员,十分优秀!