。爲什麼我的編譯器不斷抱怨的映射分配我運行在Xcode這個代碼警告「C++要求所有申報類型說明符」地圖
#include <iostream>
#include <map>
#include <deque>
using namespace std;
map<int,deque<int>> bucket;
deque<int> A{3,2,1};
deque<int> B;
deque<int> C;
bucket[1] = A;//Warning "C++ requires a type specifier for all declaration
bucket[2] = B;//Warning "C++ requires a type specifier for all declaration
bucket[3] = C;//Warning "C++ requires a type specifier for all declaration
int main() {
for (auto it:bucket)
{
cout << it.first << "::";
for (auto di = it.second.begin(); di != it.second.end(); di++)
{
cout << "=>" << *di;
}
cout << endl;
}
return 0;
}
在那裏,好像我做內部主同樣的事情了完美的作品
#include <iostream>
#include <map>
#include <deque>
using namespace std;
map<int,deque<int>> bucket;
deque<int> A{3,2,1};
deque<int> B;
deque<int> C;
int main() {
bucket[1] = A;
bucket[2] = B;
bucket[3] = C;
for (auto it:bucket)
{
cout << it.first << "::";
for (auto di = it.second.begin(); di != it.second.end(); di++)
{
cout << "=>" << *di;
}
cout << endl;
}
return 0;
}
輸出
1::=>3=>2=>1
2::
3::
Program ended with exit code: 0
有什麼事情,我很想念。不能夠易懂nd這種行爲。 任何建議,幫助或文檔。我看着到類似的問題,但沒有得到滿意的答案
實在是可執行代碼沒有這樣的東西的功能之外的C++。 –
deque A {3,2,1};爲什麼這個工作? –
因爲這是一個變量的聲明。這就是「可執行代碼」的概念有點模糊的地方。全局變量的構造函數叫做,在這種情況下,它是初始化列表構造函數。 –