【发布时间】:2011-05-26 19:19:46
【问题描述】:
我非常依赖Python's standard library,无论是对于有用的数据结构和操纵器(例如,collections 和 itertools)还是对于实用程序(例如,optparse、json 和 logging),跳过样板,然后把事情做好。翻阅 C++ 标准库的文档,它似乎完全是关于数据结构的,几乎没有 Python 标准库中的“电池”。
Boost 库是我所知道的唯一一个类似于 Python 标准库的开源 C++ 库集合,但是虽然它确实具有正则表达式支持等实用程序库,但其中大部分也专用于数据结构。我真的很惊讶,即使是像保证解析和编写 CSV 文件这样简单的事情,使用 Python csv module 变得非常简单,看起来也需要在 C++ 中滚动你自己(即使你利用 Boost 的一些解析库) .
还有其他提供“电池”的 C++ 开源库吗?如果没有,作为 C++ 程序员,你会怎么做:寻找单独的实用程序库(如果有,怎么做),或者只是自己开发(这看起来很烦人而且很浪费)?
【问题讨论】:
-
如果你不介意一点点开销(而且你非常依赖 Python),你总是可以将 Python 解释器嵌入到你的 C 应用程序中:) docs.python.org/extending/embedding.html
-
@Demian 确实如此,但是如果没有直接的 C/C++ 等价于许多这些工具,我会完全感到困惑。如果 TIOBE、LangPop 和 Stack Overflow 标签的数量有任何迹象,C++ 的使用仍然比 Python 更广泛,更不用说比 Python 早了十年。
-
@gotgenes:“如果没有与这些工具中的许多直接等效的 C/C++,我会完全感到困惑”。不,你不会。您将运行 Python。完全不会有任何困惑。在 C 中嵌入 Python 意味着您仍在使用 Python。
-
@gotgenes:当有像 Python 这样的替代品可用时,仍然有很多人/公司使用 C++ 的原因是 95% 的遗留问题。人们一直使用 C++,因此他们将继续使用它。然而,明智的做法是承认每种语言的优点,并巧妙地组合使用(C/C++ 和 Python 可以很好地交互)。
-
@Space_C0wb0y:我明白你的意思。我之所以提出这个问题是因为我用 Python 编写了一个科学应用程序(使用 MCMC 方法)。尽管在 Python 中进行了分析和优化,但它太慢了。我的顾问说用 C++ 重写它。我很想用 C 或 C++ 加速 Python 程序,但我不明白如何去做。 (请参阅stackoverflow.com/questions/4189328/…)因此,我正在寻找与已知工具等效的 C++ 工具。
标签: c++ python standard-library c++-standard-library