什么是“?”和“:”字符在C ++中的一行代码中起作用

时间:2019-10-07 23:10:13

标签: c++

我只是想知道"?"":"字符的作用。我正在解决一个问题,遇到了?。解决方案显示一个问号,我不知道它做什么。 :运算符还可以做什么?

return firstNum > secondNum ? vector<int>{secondNum, firstNum}:vector<int>{firstNum, secondNum};

2 个答案:

答案 0 :(得分:5)

这是ternary conditional operator

E1 ? E2 : E3        
  

对条件运算符的第一个操作数求值并   上下文转换为bool。经过价值评估和   如果结果是,则第一个操作数的所有副作用都已完成   如果为true,则评估第二个操作数。如果结果为假,则   计算第三个操作数。

答案 1 :(得分:0)

要补充@Andreas DM的内容,这类似于编写if-else语句的版本。与使用if不同,它返回一个值。

if (condition) {
    std::cout << "True\n";
} else {
    std::cout << "False\n";
}

等效于:

std::cout << (condition ? "True\n" : "False\n");