C++条件运算符

发布于 2024-09-11 11:33:13 字数 313 浏览 6 评论 0 原文

我曾经在 C++ 中看到过一个 -wired- 运算符,它在大于时赋值。
它是 ?<= 的组合

,例如,如果值大于 x

I,则让 x = value 并不意味着 x=(x

它是某种x

但我记不清了,而且网上找不到。有人能提醒我一下吗?

谢谢,

I once seen a -wired- operator in C++ which assigns value if greater than..

it was a combination of ?, < and =

e.g. let x = value if value is greater than x

I do not mean x=(x<value)x:value

It was some sort of x<?=value

But I can not remember it exactly, and can not find it online... Can some one remind me of it?

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

苹果你个爱泡泡 2024-09-18 11:33:13

不存在根据变量的相对值来分配变量的运算符。

然而,有 ?: 运算符:

x = value > x ? value : x;

如果你从左到右大声朗读它,它是有道理的。

There is no operator that assigns variables based on their relative values.

However, there is the ?: operator:

x = value > x ? value : x;

If you read it out loud from left to right, it makes sense.

少女七分熟 2024-09-18 11:33:13

gcc 至少在 3.3.6 版本中有! -- 特定于 gcc 的语言扩展,提供用于实现 min 和 max 的专用运算符。或许这就是你的想法?

C++ 中的最小和最大运算符

我没有方便的 gcc 来测试它,但它可能也有一个更新表单。

gcc has -- in version 3.3.6 at least! -- a gcc-specific language extension providing specialized operators for implementing min and max. Perhaps this is what you are thinking of?

Minimum and Maximum Operators in C++

I don't have gcc handy to test it with, but it might have an updating form, too.

余生共白头 2024-09-18 11:33:13

怎么样:

(x<value) || (x=value)

How's that:

(x<value) || (x=value)
故事未完 2024-09-18 11:33:13

您是否正在考虑三元运算符

result = a > b ? x : y;

Are you thinking of the ternary operator?

result = a > b ? x : y;
疑心病 2024-09-18 11:33:13

我怀疑您正在考虑的是 gcc 扩展1 允许您省略条件运算符的中间操作数,因此(例如):

a = b ? b : c;

可以写为:

a = b ?: c;

1 尽管其中有“2.95.3” URL,我不知道链接页面有更新版本。如果有人是,请随时指出(或编辑)。

I suspect what you're thinking of is a gcc extension1 that lets you leave out the middle operand to the conditional operator, so (for example):

a = b ? b : c;

can be written as:

a = b ?: c;

1 Despite the '2.95.3' in the URL, I'm not aware of a newer version of the linked page. If somebody is, please feel free to point it out (or edit it in).

猥琐帝 2024-09-18 11:33:13

这是用于赋值的 if 语句的更方便的版本,

int x = (some bool) ? trueval : falseval;

这大致就是它的意思,当对 bool 进行求值时,它根据结果得到 trueval 或 falseval,这比说更容易

int x;
if (someval)
    x = trueval;
else
    x = falseval;

it's a more convenient version of an if statement that is used for assignment

int x = (some bool) ? trueval : falseval;

this is roughly what it means, when the bool is evaluated it either gets the trueval or falseval depending on the outcome, it's easier than saying

int x;
if (someval)
    x = trueval;
else
    x = falseval;
当梦初醒 2024-09-18 11:33:13
x = x < value ? 0 : 1;

当 x < 时,该函数将 x 设置为 0值,否则为 1。

x = x < value ? 0 : 1;

This function sets x to 0 is x < value, 1 otherwise.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文