C/С++ эквиваленты стандартной библиотеки Python

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

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

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

Ответы

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

Ответ 4

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

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

Ответ 5

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

Boost и Qt являются единственными, которые были бы более похожими на библиотеку типа "делать все".