c++,三元操作符,std::cout
C++, ternary operator, std::cout
如何使用c++
用三元操作符编写下列条件int condition1, condition2, condition3;
int / double result; //int or double
....
std::cout << ( condition1: result1 : "Error" )
<< ( condition2: result2 : "Error" )
<< ( condition3: result3 : "Error")...;
取决于result1, result2
等的类型
expressionC ? expression1 : expression2
并非对所有类型的expression1
和expression2
都有效。粗略地说,它们必须转换为通用类型(确切的规则和例外可以在标准中阅读)。现在,如果result
是字符串,那么你这样做:
std::cout << ( condition1 ? result1 : "Error" )
^^^
<< ( condition2 ? result2 : "Error")
^^^
<< etc.
但是如果结果是整数,例如,你不能这样做。
HTH
尝试使用condition ? true-value : false-value
相关文章:
- 使用std::enable_if元函数重载模板类中的操作符+=
- Std::initializer_list和=操作符
- 使用比较操作符将Std::string作为Std::map中的键
- Cxx-prettyprint(用于标准容器)在命名空间std中定义了它的输出操作符——这违反了标准吗?
- 重写std::string的赋值(=)操作符
- std::transform中的二元操作符,带unique_ptr的vector对象
- 如何创建一个std::map的常数值,它仍然可以被[]操作符访问
- 带有std::index_sequence的三元操作符
- 在继承std::vector的类中使用操作符[]
- 使用c++中的流操作符解析std::uint类型
- c++ std::map::iterator一无所获,但下标操作符返回对映射值的引用
- 为什么std:: bitset::参考::操作符~
- ' std::bitset::reference '赋值操作符
- c++中的宏操作符和std::字符串比较
- 重载操作符来处理我自己的类作为std类是一个好做法吗?
- 用new操作符定义std::shared_ptr时出错
- 清除std::vector对象需要赋值操作符.为什么
- std::shared_future操作符=线程安全性/原子性
- 为什么std::weak_ptr没有move构造函数或move赋值操作符?
- 访问由std::shared_ptr封装的类的操作符重载