Re: const char* в качестве ключа для std::map
От: Alexander G Украина  
Дата: 04.08.17 16:42
Оценка:
Здравствуйте, niXman, Вы писали:

X>тут type::register() зовется единожды при запуске программы, но а type::invoke() множество раз.


Используй std::vector<std::string>, отсортируй после всех register, но перед первым invoke, ищи через свободную функцию std::lower_bound, передавая свой компазатор:
struct Comparator 
{
    bool operator()(cosnt std::string& s1, const char* s2) const { return std::strcmp(s1.c_str(), s2) < 0; }
    bool operator()(const char* s1, const std::string& s2) const { return std::strcmp(s1, s2.c_str()) < 0; }
};
Русский военный корабль идёт ко дну!
Отредактировано 04.08.2017 16:43 Alexander G . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.