1
初始化一個容器,我們可以通過使用標準輸入這樣初始化一個容器雙端隊列:C++標準庫:通過使用標準輸入
deque<int> c((istream_iterator<int>(cin)),(istream_iterator<int>()));
爲「C++標準庫」描述,額外的括號初始化參數是沒有必要的。沒有它們,c聲明瞭一個返回類型爲deque的函數。它的第一個參數的類型爲istream_iterator,名稱爲cin,而其第二個未命名參數的類型爲「函數不返回istream_iterator的參數」。代碼
deque<int> c(istream_iterator<int>(cin),istream_iterator<int>());
但是額外的圓括號強制初始化程序不匹配聲明的語法。 我不明白爲什麼額外的括號可以使初始化程序不匹配聲明的語法。感謝很多。