C++向量的三元条件算子

Ternary Conditional Operator for C++ vectors

本文关键字:三元 条件 向量 C++      更新时间:2023-10-16

我有一个代码,其中我使用了三元运算符。我希望向量只在c>d时执行push_back。否则,什么都不应该发生。我该如何实现这一点。但我不应该使用if else条件。以下是我的代码:

    int c=30,d=10;
    std::vector<int> first;
    (c>d) ? first.push_back(c) : "What should be here";

vectorpush_back返回void。如果条件运算符的最后两个操作数之一的类型为void,而不是throw表达式,则这两个操作都必须具有void类型。因此:

(c > d) ? first.push_back(c) : void();

当然,这比可读性差得多,而且实际上更详细

if (c > d) first.push_back(c);

并且不应该在实际代码中使用。