Как стать автором
Обновить
9
0
Олег Стрельников @oleg1977

Пользователь

Отправить сообщение
В пример программы внесны изменения, в частности, добавлены варианты использования std::function — спасибо Unrul
В gcc-4.7 такое компилируется и работает:
		typedef std::multiset<int, std::function<bool(int,int)>> Set4;
		Set4 sets4[N] = {Set4(std::less<int>()), Set4(std::bind(std::less<int>(), _2, _1))};

Не могу понять, почему в принципе в вс12 может не компилироваться такой код: bind(less(), _1, _2) подходит под тип function<bool(int,int)>> а less() — нет?
bind(less(), _1, _2) — тавталогия?

Еще короче:
    Set set0(less<int>());
    Set set1(greater<int>());


А вообще очень хорошая идея с function, я не достаточно знаю с++11, чтобы самому догадаться, спасибо
Объединение циклов — в самой постановке задачи. Не могу целиком привести условие, хотя бы из-за того, что слишком долго. Семантически там нужно сделать одно и то же действие N=2 раза в разном порядке. К тому же если N не 2 а 1000, то просто функция уже не прокатит
На мой взгляд не хватает свопов
8: не хватает начального условия: все включены или выключены
Задача 9: пусть 2а — сторона квадрата, из O опускаем высоты х, у, (2а-х) и (2а-у).
Дальше система уравнений (площади 4-угольников из площадей 3-угольников):
ax/2 + ay/2 = 20,
ay/2 + a(2a-x)/2 = 16
ax/2 + a(2a-y)/2 = 32

ax/2 -a(2a-x)/2 = 4
ay/2 -a(2a-y)/2 = -12
ax/2 + ay/2 = 20

ax = a^2 + 4
ay = a^2 — 12
a^2 + 2 — 6 = 20

Искомое: а(2а-х)/2 + а(2а-у)/2 = 2а^2 — ax/2 — ay/2 = a^2 — 2 + 6 = 24 — 2 + 6 = 28
Задача 7: даже без перемешивания ответ будет тем же. Если в 1-м бакале 1 воды и 0 вина, во втором — 1 вина и 0 воды, то после всех операций в 1-м будет (1-х) воды и х вина, во 2-м — (1-х) вина и х воды
не посмотрел еще новую версию, а в старой мне не хватает голосового предупреждения о скорости и камерах
С моей точки зрения код с do-while — это не головоломка.
Мне, например, в вашем варианте не нравится магическое число 255 и выполнение if на каждой итерации цикла (я не имею в виду производительность). Все дело вкуса. Согласен, что вы предложили корректное решение. Но я бы в продакшн выпустил вариант do-while, также в отсутствии доп. условий. К слову, я встречал Code Style Guide, запрещающий использование do.
Еще такой вариант:
class A
{
 static int i;
public:
 A() { std::cout << i++ << ' '; }
};

int A::i = 0;

A a[1000];
нарушение UPD2
Я считаю корректным на собеседовании по C++ задавать вопросы по C
Да, с первоначальной формулировкой условия — моя ошибка, извините
Очень красивое решение
Правда я его модифицировал
	for (unsigned char i = 0;  std::cout << (int) i++, i != 0;);


Ввожу дополнительное условие в UPD
Бесконечный цикл
никакого прокола
пробовал — бесконечный цикл
не выведет 255
задача демонстрирует знание циклов, подробности будут завтра

практическую проблему я упомянул не потому, что без приведенной задачи нельзя было решить эту проблему, а просто для того, чтобы уточнить, что задача не выдумывалась специально для собеседований

Информация

В рейтинге
Не участвует
Откуда
Волгоград, Волгоградская обл., Россия
Дата рождения
Зарегистрирован
Активность