2015-02-10 49 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

相关问题