Здравствуйте, c-smile, Вы писали:
U>>я предложил каскад if (по факту линейный поиск) можно заменить на поиск по мапе (тут всякие мапы можно заюзать)
U>>вот так, например: https://ideone.com/oa9hv0
U>>по факту это switch по строкам, который в плюсах не поддерживается =\
CS>Ты думаешь что условно 9 if:
CS>CS>if(s.length = A && strcmp(...) == 0) t = 1;
CS>else if(s.length = B && strcmp(...) == 0) t = 2;
CS>...
CS>
CS>будет медленнее чем создание std::map и поиск по дереву?
CS>Если "да" то ты ошибаешься я думаю.
Так это зависит от того, как используется данный код. Если он вызывается не один раз, то очевидно что std::map будет эффективнее, т.к. инициализация дерева будет происходить только один раз. И это кстати не теория — я использую на практике именно такой подход (только со string_view, а не string в качестве ключа для map).
CS>А для больших списков строк есть gperf который a) статический, b) быстрее чем std::map и с) памяти не просит.
Хы, ну это уже для совсем тяжёлых случаев игрушка. )))