这是我的代码。
std::cout << "The contaner is " << (!container)?"not":; "empty";
很明显是行不通的,但我希望你现在明白了。我想打印 "The container is empty"
并补充说 "not"
之前 "empty"
如果 bool
container
是 false
.
我想知道这是否可能,或者我是否必须写一些类似的东西。
if(container) std::cout ...;
else std::cout ...;
你就快成功了。三元运算符将需要 else
结果,你可以使用一个空字符串 ""
那么,由于先例问题,你将需要用括号来封装表达式。
std::cout << "The contaner is " << (!container ? "not" : "") << "empty";
当所有的事情都失败了,就用if语句。
std::cout << "The contaner is ";
if (!container)
std::cout << "not ";
std::cout<< "empty";
就我个人而言,我更喜欢这样,而不是使用条件操作符,因为对我来说,它更容易阅读。 当你想显示的东西的类型不同时,这也是可行的。 条件操作符要求将两种情况都转换为一个共同的类型,所以像 !container ? "not" : 1
无法工作。
试试... << (!container ? "not" : "") << "empty"
.
你可以在非空的情况下加上空字符串。
std::cout << "The container is " << (!empty ? "not ": "") << "empty";
或者把聪明程度调低一点,我个人觉得这样更易读。
std::cout << "The container is " << (empty ? "empty": "not empty");