Попытки являются все еще хорошей идеей о современной архитектуре?

С помощью std вы можете сделать:

//Gathering Largest Temperature:
auto max = std::max_element(std::begin(yearData), std::end(yearData),
                            [](const auto& lhs, const auto& rhs){
                                return lhs.highTemperature < return rhs.highTemperature;
                            });

auto max_index = std::distance(std::begin(yearData), max);

// Gathering Smallest Temperature:
auto min = std::min_element(std::begin(yearData), std::end(yearData),
                            [](const auto& lhs, const auto& rhs){
                                return lhs.lowTemperature < return rhs.lowTemperature;
                            });
auto min_index = std::distance(std::begin(yearData), min);
10
задан Community 23 May 2017 в 10:29
поделиться

3 ответа

Я не думал об этом как о проблемной области прежде, но теперь, когда Вы упоминаете это, существуют времена, когда стандартная реализация Trie могла бы быть удобной. С другой стороны, насколько я знаю, Попытки используются Python и Perl и другими опытными строкой языками, которые я использую теперь.

В последний раз я проверил, который был давным-давно, код ядра BSD использовал Tries (Patricia Tries) в коде для выбора лучшего интерфейса для отправки пакетов. Похож на Википедию, имеет некоторую информацию.

7
ответ дан 3 December 2019 в 23:51
поделиться

Вы могли просто создать два демонстрационных приложения и видеть, какой работает лучше. Доступ к памяти является дешевым предположением, что Вы не разбиваете на страницы отказ. Затем это очень дорого. Для разработки клиентского приложения, почти всегда лучше для обработки, чем к памяти доступа по этой самой причине. Современные процессоры являются смехотворно быстрыми, но неудачными обращениями в кэш все еще вред.

4
ответ дан 3 December 2019 в 23:51
поделиться

Я сделал некоторое тестирование производительности в C# с Trie и Словарем (хеш-таблица со строгим контролем типов). Я нашел, что Словарь был в 5-10 раз быстрее, чем Trie. Возможно, моя реализация Trie могла быть оптимизирована немного, но едва достаточно быть намного быстрее, чем (или возможно как раз когда быстро как) Словарь.

Метод ContainsKey в словаре близко к O (1) операция (в зависимости от того, насколько хороший алгоритм хеширования), таким образом, не легко сделать набор, который бьет это, пока алгоритм хеширования довольно быстр.

С пользовательским IEqualityComparer можно использовать больше всего что-либо в качестве ключа в Словаре, который делает его довольно гибким. Trie немного более ограничен в том, что можно использовать в качестве ключа, так, чтобы пределы полноценность несколько.

2
ответ дан 3 December 2019 в 23:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: