Я получил код, который хотел бы улучшить. Это простое приложение для одного из вариантов 2DBPP, и вы можете посмотреть на источник в https://gist.github.com/892951
Вот схема вещей, для которых я использую символы (вместо этого я бы хотел переключиться на двоичные значения.) Инициализируйте блок памяти с помощью '0's ():
...
char* bin;
bin = new (nothrow) char[area];
memset(bin, '\0', area);
иногда я проверяю определенные значения:
if (!bin[j*height+k]) {...}
или блоки:
if (memchr(bin+i*height+pos.y, '\1', pos.height)) {...}
или установите значения в «1»:
memset(bin+i*height+best.y,'\1',best.height);
Я не знаю каких-либо стандартных типов или методов для работы с двоичными значениями. Как мне использовать биты вместо байтов?
Есть связанный вопрос, который вас может заинтересовать -
Производительность C ++: проверка блока памяти на наличие определенных значений в определенных ячейках
Спасибо!
Редактировать: Есть еще более важный вопрос - это будет улучшение? Меня интересует только время.