2015-02-10 48 views
-6

聲明這個語句在C++中的含義是什麼?

vector<int>v(string s); 

,如果我打印:

cout << v << endl; 

結果爲 「1」!

+2

這看起來像'矢量 v(字符串s)的函數原型;'如果是這樣,那麼沒有辦法知道爲什麼你沒有看到它的定義就得到了什麼。 – 2015-02-10 18:35:22

+2

調高警戒級別。我用'-Wall -Wextra'得到了這個:'警告:'std :: vector v(std :: string)'的地址總會被評估爲'true'[-Waddress]'。 – 2015-02-10 18:39:29

回答

5

這是一個函數名爲v的函數聲明,該函數採用string類型的參數並返回類型爲vector<int>的值。

當用cout<<v打印,存在用於operator<<沒有過載,需要一個指針到這種類型的功能,所以代替它被轉換爲一個bool與值true(因爲它的非空),該印刷爲1

+0

hhhhhh對,我不敢相信我問過那樣的東西:) 謝謝 – 2015-02-10 18:45:22

相關問題