LINUX.ORG.RU

структуры данных (Си)(ptw: опрос)


0

0

каждый из нас, праграммируя на plain c, часто сталкивается с тем, что нужно использовать ту или иную структуру данных. будь то граф b-дерево, rb, splain, avl, листы, очереди, хэш-таблицы и иже с ними.

судьба нас обделила (скорее всего это к лучшему) какой-то структурированной библиотекой структур данных с более-менее универсальным интерфейсом. и я заметел такую очевидную, в принципе, тенденцию. большинство сишников - и я в том числе - имеет какой-то каталог типа ~/mylib, где хранят реализванные структуры данных, которые при необходимости вставляются в код банальнейшим copy-paste.

соответсвенно вопрос: идёте ли вы по вышеописанному пути или нет. если да, то реализуете ли вы сами отсутвующую структуру данных или ищите реализацию стороннего разработчика. если нет, то опишите по какому пути шагаете вы.

заранее благодарен за ответы.


ссс

glib в моих условиях не применима, а copy-paste не люблю :) ЗЫ: скоро открою небольшой велосипедный заводик.

int_0dh
()
Ответ на: ссс от int_0dh

>glib в моих условиях не применима

Почему?

anonymous
()
Ответ на: ссс от int_0dh

ну вообще-то и деревья, и списки, и хэши есть в libc

dilmah ★★★★★
()

> каждый из нас, праграммируя на plain c, часто сталкивается с тем, что нужно использовать ту или иную структуру данных. будь то граф b-дерево, rb, splain, avl, листы, очереди, хэш-таблицы и иже с ними.

Отучаемся говорить за всех. (c)

Используя портабельный ассемблер по назначению _крайне_ редко сталкиваешься с необходимостью использовать что-то сложнее связных списков и примитивных хэшей.

anonymous
()

У меня есть такая библиотека. Причины - банальны. 1) glibc не перекомпилишь, а моя функция быстрой сортировки, к примеру, при компиляции с хорошими ключами и будучи встроенной в тело программы, работает быстрее реализации из glibc в 2 (!) раза. Хотя исходный код у них практически 1:1. Да, дружочки, Copy+Paste иногда рулит. 2) многие библиотечные функции работают не так, как хотелось бы. При этом их не переделать. Например, функции перекодировки iconv заканчивают работу, если встречают символ не допустимый в исходной кодировке. Реально нужно, чтобы они этот символ просто пропускали.

wa
()
Ответ на: комментарий от bugmaker

Ну это уже экстремизЬм. На что-то Си все-таки годится, драйвера там разные, rtl для нормальных высокоуровневых языков. Но в принципе да, если в проекте есть main на Си, то что-то в консерватории нужно подправить.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.