2012-10-28 160 views
53

我知道在C++ 11它們添加的功能來初始化變量爲零這樣初始化矢量爲零C++/C++ 11

double number = {}; // number = 0 
int data{}; // data = 0 

是否有類似的方式來初始化的std::vector一個固定長度的所有零?

+8

'的std ::矢量 VEC(42);' – avakar

+5

順便說一句,這是不是在C++ 11新的,你可以做到這一點以前的版本以及 – balki

回答

116

你不需要初始化列表爲:

std::vector<int> vector1(length, 0); 
std::vector<double> vector2(length, 0.0); 
+17

你不需要明確說明0是嗎?只是'矢量(長度)'應該工作? – jozefg

+18

@jozefg:是的,它可以工作,但是明確你想要代碼做什麼並沒有什麼壞處。 – ronag

+0

@ronag我寫了我自己的答案,因爲在這種情況下顯式不一定是一個很好的例子,如果int不是他正在使用的類型。 gereral編程在C++中可用,但是當我被提醒你可以完全省略參數時,我刪除了我的答案。 –