Инвертирование выбранных битов в участке памяти, заданном указателем и длиной в байтах.
Введите данную команду:
g++ main.cpp
Использована многопоточность. На моем 8-ядерном ноутбуке на массиве размера 9 МБ многопоточная версия работает в более чем 3 раза быстрее последовательной:
Sequential 959ms
Parallel 258ms
Биты выбирается с помощью пользовательской функции func. func должна принимать size_t и возвращать bool. func(i) == true означает, что i-й бит нужно инвертировать. Биты нумеруются от 0 до 8 * size - 1.