Box() : Figure( (const bool[4][4]){
{0, 0, 0, 0},
{0, 1, 1, 0},
{0, 1, 1, 0},
{0, 0, 0, 0}
}, "Box") {};
brick = (OBJECT*)realloc(brick, sizeof(*brick) * brickLength);
brick = new Object[brickLength];
delete[]
.std::vector<Object>
. for (int i = 0; i < 8; ++i) result |= byte_array[i+1] << (8ULL*i);
или for (int i = 0; i < 8; ++i) result |= byte_array[i+1] << (8ULL*(7-i));
&result
. rewrite
из шаблона search
.rewrite
вверх, до специализации search
, то все скомпилируется. Или надо где-то выше первого использования шаблона rewrite задекларировать специализацию (что ваш закомментированный код и делает).Specialization must be declared before the first use that would cause implicit instantiation, in every translation unit where such use occurs:
a
для какой-то новой локальной переменной, когда a
выйдет из зоны видимости. Но чаще это место просто будет пустым до конца функции и никакой экономии памяти вы не получите.numeric_limits<int>::min()
L < key < R
, а L <= key < R
. Т.е. отличие от кода в конце вопроса, по идее, должно состоять только в одном знаке <=
вместо <
numeric_limits<int>::max()+1
в качестве правой границы. Но тут можно решить эту проблему просто заменив тип параметров max_key, min_key на long long. Или изменить их смысл на "ключи в этом поддереве могут быть с L по R включительно". Тогда при переходе к левому сыну надо бы передавать tree[i].key-1
в качестве max_key. Но тогда надо аккуратно и не переполниться при numeric_limits<int>::min()
. Но тут тогда нужна дополнительная проверка - любая вершина со значением numeric_limits<int>::min()
не должна иметь левых детей. O(n)
- вы проходитесь по всему множеству. А все ваше рение будет O(n^2)
. Когда как это надо делать за O(log n)
максимум. Ну посмотрите же на ограничения - n <= 10^5
. Обычно n^2
работает ну до 10^4 максимум с огромным скрипом и натяжками.i*i
а от i
. Эту оптимизацию можно делать, потому что у каждого числа обязательно есть простой делитель не больше корня, а значит и такой цикл пометит все составные числа.O(n log(log n))
- Доказательство смотрите в википедии.