2
什麼標題,假設我有一個圖是這樣的:C++的std ::地圖Intristic類型初始化使用[]操作
std::map<int, int> m;
,如果我寫了下面的
cout<<m[4];
- 什麼會是結果(0,未初始化,編譯器特定)?
- 同樣適用於指針(即std :: map)嗎?
編輯:
爲了澄清,在這個問題上,我尋求標準行爲。
由於提前, 傑姆
什麼標題,假設我有一個圖是這樣的:C++的std ::地圖Intristic類型初始化使用[]操作
std::map<int, int> m;
,如果我寫了下面的
cout<<m[4];
編輯:
爲了澄清,在這個問題上,我尋求標準行爲。
由於提前, 傑姆
的值將是什麼類型的默認構造函數創建的,因爲新的景點正在使用T()
填補。對於int
,這是0
。你可以看到自己這一點:
#include <iostream>
using namespace std;
int main() {
cout << int() << endl; // prints 0
}
初始化類像這樣的空括號被稱爲值初始化(見下文ildjarn的評論)。
迂迴地說,這被稱爲_value-initialization_。 – ildjarn
指針怎麼樣?有任何想法嗎? –
@ildjarn究竟哪個部分被稱爲? –