Я разработал механизм сценариев, который имеет множество встроенных функций, поэтому для вызова любой функции мой код просто перешел на стену if .. else if .. else if
, проверяя имя, но я хотел бы разработать более эффективное решение.
Должен ли я использовать хэш-карту со строками в качестве ключей и указателей в качестве значений? Как я могу это сделать, используя карту STL?
ИЗМЕНИТЬ: Еще один момент, который пришел мне на ум: конечно, использование карты заставит компилятор не выполнять встроенные функции, но мой неэффективный подход не имел никаких накладных расходов, вызванных необходимостью вызова функций, он просто выполняет код.
Итак, интересно, будет ли служебная информация, генерируемая вызовом функции, лучше, чем цепочка if..else
. В противном случае я мог бы минимизировать количество сравнений, проверяя символ во время выполнения (будет длиннее и быстрее).