搜尋

首頁  >  問答  >  主體

c++ - stl标准库中map容器的使用

#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函数外赋值

怪我咯怪我咯2773 天前315

全部回覆(2)我來回復

  • PHP中文网

    PHP中文网2017-04-17 14:01:17

    其實不只map,即使換成其他類型的變量,一樣報錯,比如改成:

    int a;
    a = 1;
    
    int main() {
       ...
    }

    也會報同樣的錯誤。在函數作用域之外,只能宣告並定義變量,不能對變數賦值。要注意的是,類似

    int a = 1;

    這樣的語句,不是變數賦值,而是變數定義,是可以出現在函數體之外的。

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 14:01:17

    全域作用域下只能宣告初始化,單獨的賦值和函數呼叫語句都不行。 。

    其實你可以這樣寫。 。 。

    map<int, int> tmp;
    auto shit = tmp[1] = 1;

    回覆
    0
  • 取消回覆