【问题标题】:What is the meaning of this statement in c++?这个语句在c++中是什么意思?
【发布时间】:2015-02-10 18:33:32
【问题描述】:

声明

vector<int>v(string s);

如果我打印这个:

cout << v << endl;

结果是“1”!!

【问题讨论】:

  • 这看起来像 vector&lt;int&gt; v(string s); 的函数原型 如果是这样,那么没有看到它的定义就无法知道为什么你会得到你得到的东西。
  • 调高警告级别。我通过-Wall -Wextra 得到了这个:warning: the address of ‘std::vector&lt;int&gt; v(std::string)’ will always evaluate as ‘true’ [-Waddress]。

标签: c++ string vector


【解决方案1】:

这是一个名为v 的函数的声明,它接受string 类型的参数并返回vector&lt;int&gt; 类型的值。

当您使用cout&lt;&lt;v 打印它时,operator&lt;&lt; 没有重载,它接受一个指向此类型函数的指针,因此它被转换为具有值 true 的 bool(因为它不是-null),打印为1。

【讨论】:

  • hhhhhh 对,我不敢相信我问过这样的问题 :) 谢谢
猜你喜欢
  • 2012-01-05
  • 1970-01-01
  • 2022-01-12
  • 2016-07-04
  • 1970-01-01
  • 2021-12-25
  • 2014-03-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多