Условный оператор C++

Я когда-то замеченный - проводной оператор в C++, который присваивает значение, если больше, чем..
это была комбинация ?, < и =

например, позвольте x = значение, если значение больше, чем x

Я не имею в виду x=(x<value)x:value

Это был своего рода x<?=value

Но я не могу помнить это точно и не могу найти его онлайн... Кто-то может напомнить мне о нем?

Спасибо,

8
задан Betamoo 27 July 2010 в 19:54
поделиться

7 ответов

gcc есть - как минимум в версии 3.3.6! - специфичное для gcc языковое расширение, предоставляющее специализированные операторы для реализации min и max. Возможно, это то, о чем вы думаете?

Операторы минимума и максимума в C ++

У меня нет под рукой gcc, чтобы проверить его, но он может иметь форму обновления.

8
ответ дан 5 December 2019 в 06:52
поделиться

Как это:

(x<value) || (x=value)
4
ответ дан 5 December 2019 в 06:52
поделиться

Не существует оператора, который присваивает переменные на основе их относительных значений.

Однако существует оператор ?::

x = value > x ? value : x;

Если прочитать его вслух слева направо, то он имеет смысл.

11
ответ дан 5 December 2019 в 06:52
поделиться

это более удобная версия оператора if, который используется для присваивания

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

это примерно то, что это означает, когда вычисляется bool, он получает либо истинное значение, либо ложное значение в зависимости от результата, это проще, чем сказать

int x;
if (someval)
    x = trueval;
else
    x = falseval;
0
ответ дан 5 December 2019 в 06:52
поделиться
x = x < value ? 0 : 1;

Эта функция устанавливает x в 0, если x < значения, 1 в противном случае.

0
ответ дан 5 December 2019 в 06:52
поделиться

Вы думаете о троичном операторе?

result = a > b ? x : y;
1
ответ дан 5 December 2019 в 06:52
поделиться

Я подозреваю, что вы думаете о расширении gcc 1 , которое позволяет вам опускать средний операнд для условного оператора, поэтому (например):

a = b ? b : c;

можно записать как:

a = b ?: c;

1 Несмотря на "2.95.3" в URL-адресе, я не знаю более новой версии связанной страницы. Если кто-то есть, пожалуйста, не стесняйтесь указать на это (или отредактировать).

0
ответ дан 5 December 2019 в 06:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: