Re[7]: C++ code formatter
От: alex_public  
Дата: 13.10.17 01:24
Оценка: -2
Здравствуйте, 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 и с) памяти не просит.


Хы, ну это уже для совсем тяжёлых случаев игрушка. )))
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.