我從某些算法書籍中讀取了Queue的實現,有一段對我來說是新的/有趣的片段,我不明白。我認爲這是C++ 11中向量初始化列表的新東西,但由於代碼的上下文我沒有那麼自信。任何人都可以擺脫燈光或提供一些參考?什麼是C++構造函數中的大括號參數11
template <typename T>
class Queue {
private:
size_t head, tail, count;
vector<T> data;
public:
Queue(const size_t &cap=8) : head(0),tail(0),count(0),data({cap}) {}
//... more interfaces
//...
}
可疑的部分是數據({cap}),這是什麼?它將矢量調整到cap容量? (顯然,代碼的作者打算建造時,它給數據帽的大小。)
編輯: 閱讀第一答案和測試後,我們知道,這本書中摘錄了錯誤。它打算給出一個初始上限,但它使用錯誤{}。
http://en.cppreference.com/w/cpp/utility/initializer_list – BoBTFish 2013-04-08 15:51:57
[C++ 11趣味與初始化列表,數組和枚舉](http://stackoverflow.com/questions/8606315/c11-fun-with-initializer-lists-arrays-and-enumerations)。在提出問題之前,您應該先諮詢C++參考。基本的語法問題可以這樣回答。 – 2013-04-08 15:52:26
如果我沒有弄錯,{cap}應該是大小爲8的空列表;所以它會初始化它,默認長度爲8 ....或者元素爲8的列表,所以你最終會得到這個結果。 – Shark 2013-04-08 15:55:46