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