Что означает a>? = B?
Я нашел код ниже и не понимаю, что это значит:
res>?=m[2];
Вот код, где я его нашел, и некоторый контекст для него.
vector<int> m(3);
int s = 0;
... do stuff with m ...
res>?=m[2];
return res;
Ответы
Ответ 1
Это старое расширение GCC.
Эквивалент a >?= b
равен a = max(a,b);
Вы можете проверить Минимальные и максимальные операторы на С++
Очень удобно иметь операторы, которые возвращают "минимум" или "максимум" двух аргументов. В GNU С++ (но не в GNU C),
a <? b
- это минимум, возвращающий меньшие числовые значения a и b;
a > ? б
- максимальное значение, возвращающее большее число числовых значений a и b.
На боковой заметке: -
Эти операторы нестандартны и устарели в GCC. Вы должны использовать std:: min и std:: max.
Ответ 2
Это, конечно, не стандартный С++. Я могу догадаться, что это ярлык для назначения + тройной оператор, аналогичный присваиванию + двоичным операторам, например operator+=
и другим:
res = (res > m[2]) ? res : m[2];
Вы можете прочитать здесь: Расширения языка С++:
a <? b
is the minimum, returning the smaller of the numeric values a and b;
a >? b
is the maximum, returning the larger of the numeric values a and b.