1
我一直在阅读实现哈希表的C++代码。虽然它很清楚下面的代码是干什么的,但我无法理解那些花括号{}在那里做什么。我试图在网上查找它,但找不到任何东西,最有可能的是,即使这个表达的名字对我来说也是未知的。{}在函数调用中的参数之前表示什么? key_equal {}(key1,key2);
我认为它与std :: equal函数被typedef处理为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); }
从来没有告诉我,它是一个类,而不是一个函数,并正在初始化一个空的初始化列表。谢谢 –
这里是更多的相关链接:[列表初始化](http://en.cppreference.com/w/cpp/language/list%20initialization)。 它不是'std :: initializer_list',因为它可以包含不同类型的内容,而是一个'braced-init-list'。 – HolyBlackCat
谢谢,你是对的;我修复了这个链接。 – gimpf