Лучшее, что вы собираетесь сделать в стандартном C или C ++, это преобразовать его в одномерный массив из 100 чисел и добавить их в цикл. (Одиночные подписки будут использовать немного меньшую обработку, чем двойные, если компилятор не сможет их оптимизировать. Единственный способ узнать, какой это эффект, если он есть, - это проверить.)
Вы, конечно, можете создать класс, в котором сложение будет представлять собой одну простую инструкцию C ++ (canvas += addon;
), но это ничего не ускорит. Все, что могло бы произойти, - это то, что простая инструкция C ++ расширилась бы в цикл выше.
Чтобы ускорить процесс, вам нужно перейти на более низкую обработку. На многих современных процессорах есть дополнительные инструкции для такой обработки, которые вы можете использовать. Возможно, вы сможете запустить что-то подобное на GPU, используя что-то вроде Cuda . Вы можете попытаться сделать операцию параллельной и работать на нескольких ядрах, но в таком маленьком случае вам нужно будет знать, как работает кэширование на вашем процессоре.
Альтернативой является улучшение вашего алгоритма (при решении проблемы типа рюкзака вы можете использовать динамическое программирование каким-либо образом - без дополнительной информации мы не можем вам сказать) или принять представление. Десятки миллионов операций с массивом 10 на 10 превращаются в сотни миллиардов операций с числами, и это не так страшно, как раньше. Конечно, я не знаю ваш сценарий использования или требования к производительности.