在C中是否有一组标准的动态字符串,列表和字典库?

时间:2010-12-31 18:52:10

标签: c++ python c cython

我有兴趣进入C以接近金属性能,但是想用Pythonic风格编写并且不想滚动我自己的动态字符串,列表和字典。 Cython非常好,但是如果可能的话,想知道如何在直接C中使用动态变量。

使用C ++当然有STL,它将为您提供String,Vector和Map。当然,一种可能性是使用C ++编程,只使用这些功能。如果您需要C中的动态变量,这是标准做法吗?

2 个答案:

答案 0 :(得分:4)

glib相当不错且广泛使用:

  

GLib提供核心应用程序   图书馆和图书馆的基石   用C语言编写的应用程序   GNOME中使用的核心对象系统,   主循环实现,和   大量的实用功能   字符串和通用数据结构。

事实上,glib提供了更多(更多......),而不仅仅是字符串,列表和字符串的ADT。但是你可以轻松地开始使用这些部分,稍后进行扩展。


那就是说,不要认为拥有动态字符串,列表和字典会让你的代码变成Pythonic。绝大多数高级复杂的C应用程序都有这种数据结构的实现,但我不熟悉任何用“Pythonic风格”编写的应用程序。

答案 1 :(得分:3)

使用C ++;它具有所有这些的标准和高度优化的版本。绝对没有理由或好处将自己局限于C。

(编辑:换句话说,是的,这是一个非常标准的做法。请记住,使用C ++时不需要使用任何C ++的功能;通过设计,你可以选择。我经常禁用例外,例如,因为它导致大量膨胀的可执行文件。没有理由在C中编写代码。)