Я занимаюсь кодированием уже почти два месяца, и я только начинаю "свободно" владеть основами языка.Недавно я наткнулся на фрагмент кода, который выглядел так:
if (! (n & 1)) {
median += a[n / 2 - 1];
median /= 2;
}
map<int, int> f;
for (int e : a) {
f[e]++;
}
int mode = 0;
for (auto e : f) {
if (e.second > f[mode]) {
mode = e.first;
}
}
Я понимаю, что первый if использует оператор Bitwise, но я не могу понять, как он там используется.Я прочитал несколько учебных пособий, но они не имеют особого смысла для меня.
Второй вопрос, который у меня есть, касается двух циклов.Они используют символ: и имеют только один параметр?Разве не должно быть три?