10-й конкурс программирования ICFP полагался на людей, использующих структура данных веревки для эффективного решения. Это был большой трюк, позволяющий получить виртуальную машину, работающую в разумные сроки.
Веревка отлично подходит, если есть много префиксов (очевидно, слово «добавление» придумано ИТ-специалистами и не является подходящим словом!) И потенциально лучше для вставок; StringBuilders используют непрерывную память, поэтому эффективно работают только при добавлении.
Следовательно, StringBuilder отлично подходит для построения строк путем добавления фрагментов - очень нормальный вариант использования. Поскольку разработчикам требуется много делать это, StringBuilders - очень распространенная технология.
Веревки отлично подходят для буферов редактирования, например. структура данных, лежащая в основе, скажем, TextArea корпоративного уровня. Таким образом (ослабление Ropes, например, связанный список строк, а не двоичное дерево) очень распространено в мире элементов управления пользовательского интерфейса, но это не часто предоставляется разработчикам и пользователям этих элементов управления.
Вам нужны действительно большие объемы данных и отток, чтобы окупиться - процессоры очень хороши в потоковых операциях, и если у вас есть оперативная память, тогда просто перераспределение для префикса работает приемлемо для обычных случаев использования. Это соревнование, упомянутое наверху, было единственным разом, когда я видел, что это нужно.
person
Will
schedule
10.12.2009