#include <map>
#include <iostream>
using namespace std;
map<int, int> tmp;
tmp[1] = 1;
int main()
{
map<int, int> res;
res[1] = 2;
res[3] = 2;
for (auto it : res)
{
cout << it.first << endl;
}
}
为什么map类型的变量不能在main函数外赋值
PHP中文网2017-04-17 14:01:17
其實不只map,即使換成其他類型的變量,一樣報錯,比如改成:
int a;
a = 1;
int main() {
...
}
也會報同樣的錯誤。在函數作用域之外,只能宣告並定義變量,不能對變數賦值。要注意的是,類似
int a = 1;
這樣的語句,不是變數賦值,而是變數定義,是可以出現在函數體之外的。
巴扎黑2017-04-17 14:01:17
全域作用域下只能宣告初始化,單獨的賦值和函數呼叫語句都不行。 。
其實你可以這樣寫。 。 。
map<int, int> tmp;
auto shit = tmp[1] = 1;