C / C ++ эквиваленты стандартной библиотеки Python - PullRequest
14 голосов
/ 17 декабря 2010

Я сильно зависим от стандартной библиотеки Python , как для полезных структур данных и манипуляторов (например, collections и itertools), так и для утилит(например, optparse, json и logging), чтобы пропустить шаблон и просто выполнить все.Просматривая документацию по стандартной библиотеке C ++, она кажется полностью о структурах данных, с небольшим количеством "батарей, включенных" в стандартной библиотеке Python.

Библиотека Boost является единственной коллекцией библиотек C ++ с открытым исходным кодом.Я знаю, что это похоже на стандартную библиотеку Python, однако, хотя в ней есть вспомогательные библиотеки, такие как поддержка регулярных выражений, большинство из них также предназначены для структур данных.Я просто очень удивлен, что даже что-то столь же простое, как гарантированный анализ и запись файла CSV, сделанное восхитительно просто с помощью модуля Python csv , требует от вас сворачивания в C ++ (даже еслиВы используете некоторую библиотеку для анализа с помощью Boost).

Существуют ли другие библиотеки с открытым исходным кодом для C ++, которые предоставляют «батареи»?Если нет, что вы делаете как программист на C ++: охотитесь за отдельными библиотеками утилит (и если да, то как), или просто катаете свои собственные (что кажется раздражающим и расточительным)?

Ответы [ 5 ]

5 голосов
/ 17 декабря 2010

Библиотека Poco больше похожа на стандартные библиотеки других языков.

На самом деле логотип сайта Poco гласит: " C ++ теперь поставляется с включенными батареями!", что, как представляется, именно то, что вы просите.

Мне не понравилось, когда я пытался, потому что я нашел его слишком C-подобным и со слишком большим количеством зависимостей между частями (сложновыделить только ту функциональность, которая вам нужна).

Но многие люди и фирмы используют ее, поэтому, похоже, я в меньшинстве, и вы, возможно, найдете ее очень полезной.

ВКроме того, как уже упоминали другие, для структур данных, парсеров и действительно интерфейса для Python !, и тому подобное, проверьте Boost .

Приветствия и hth.,

4 голосов
/ 17 декабря 2010

В то время как C ++ предлагает множество удобств, расширяемых OO, он содержит очень простую стандартную библиотеку. C ++ имеет STL и Boost. Они очень хорошие и имеют больше, чем просто структуры данных.

Если вам нужны эти виды функций более высокого порядка для создания прототипов или создания приложений без интенсивных (относительных терминов) требований к скорости, то C / C ++, вероятно, не является правильным выбором для вас. Я верю, что вы обнаружите, что для большинства проектов языки высокого уровня будут достаточно быстрыми для ваших нужд. Если вы работаете с приложением, для которого требуется скорость C / C ++ (и сопутствующие стандартные отклонения), то вам, вероятно, стоит потратить время на тщательный отбор каждой отдельной библиотеки, которую вы будете использовать.

1 голос
/ 17 декабря 2010

http://www.boost.org/doc/libs/1_45_0/?view=categorized

Ускорение - это не только структуры данных - в нем много батарей, которые вы хотите - анализ, потоки, коллекции, ведение журнала и т. Д.

1 голос
/ 17 декабря 2010

http://beta.boost.org/community/sandbox.html

http://www.boostpro.com/vault/

также вы можете использовать Google для "Boost + Bar", например,

0 голосов
/ 17 декабря 2010

С C и C ++ вы, как правило, не найдете библиотеку «сделай все», вместо этого вы будете использовать отдельные библиотеки, которые делают разные вещи. Вы можете использовать одну библиотеку, которая выполняет синтаксический анализ JSON, библиотеку, которая выполняет шифрование, библиотеку и т. Д.

Boost и Qt - единственные библиотеки типа "сделай все".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...