C或C ++新手应该知道哪些库?

时间:2009-06-02 16:31:43

标签: c++ c

我向我的朋友推荐了“数字食谱”一书中的图书馆。但是,他们似乎对他来说太具挑战性。

我不确定哪些库最适合C / C ++中的新手。

C或C ++新手应该知道哪些库?

19 个答案:

答案 0 :(得分:12)

标准库,STL,然后他们需要做任何他们想要的任务。为基本上标准的库扩展添加一些增强功能。

答案 1 :(得分:12)

C Standard LibraryC++ Standard Library中的那些是必须的(正如Neil在他的回答中提到的那样,确保他们理解C和C ++之间的区别)。除此之外,他应该学习他将在项目中使用的那些。

我遗漏了Boost有两个原因:1)我不认为newbs需要必需,2)其中大部分都计划在标准库中使用{{3} }取代旧标准。<​​/ p>

答案 2 :(得分:12)

由于没有“C / C ++”这样的语言,你在这里得到的答案可能不太有用。 C程序将无法使用C ++库,而C ++程序可能有更好的替代任何建议的C库。

答案 3 :(得分:6)

  • C:C89库here有很好的描述。一旦掌握了这一点,GLib就非常有用了。它提供链接列表,可扩展字符串,目录访问功能等,并且它足够便携。
  • C ++:我认为标准库很难理解。一旦他理解了iostream,字符串等,他就应该专注于模板,智能指针,异常和多态等高级主题。这应该需要一段时间。

答案 4 :(得分:5)

的libc。 的libstdc ++

只有这两个人才能取得成功。

答案 5 :(得分:5)

我在意大利的一所高中教C语 在2年内,一旦他们掌握了语言的核心 (C中的指针和流), 学生必须学习不同的图书馆 “显示并告诉”一些样品 图书馆取决于他们的兴趣 和技能 一些例子:
计算机图形 - &gt; freeimage
文字匹配 - &gt;正则表达式
游戏 - &gt; allegro
网络 - &gt;插座
数据库 - &gt; sqllite

依旧...... 基本上我认为一旦你理解了语言 (以及数据结构......)它必须是 “欢乐时光”,并遵循你的倾向。

答案 6 :(得分:4)

C ++:Boost,STL

C:数学

答案 7 :(得分:4)

<强> string.h中  可能会被大量使用 如果你正在处理一些计算,那么math.h

答案 8 :(得分:3)

libm。 :)

答案 9 :(得分:2)

这取决于新手想要做什么。

您的语言标准库显然非常重要。除此之外,它取决于。 C ++程序员可能希望至少熟悉Boost库的部分

答案 10 :(得分:2)

对于C:

  • 标准库:了解这个
  • 才有意义
  • glib:跨平台,相当完整,广泛使用,并有详细记录。
  • gtk:非常复杂,但如果你需要在C中编写图形应用程序,那就很难被击败。

对于C ++:

  • STL和Boost
  • Qt4:跨平台,非常完整,免费,广泛使用,并有详细记录。

另外,请记住,当您学习C或C ++(甚至Java)之类的东西时,您并没有真正学习“语言”,而是在学习“平台”。选择一个平台,其中包含您在编写真实应用程序时所需的所有基本组件,而不是使用语法。要熟练使用某种语言,您必须知道自己拥有哪些工具,唯一的方法就是使用现有工具包的优秀示例。不过我还是2美分。

答案 11 :(得分:2)

这真的取决于你要做什么......我使用了很多libCurl,因为我做了很多与互联网相关的事情。

答案 12 :(得分:2)

要编写纯C代码,请让他以 ncurses 开头。这很有趣。

答案 13 :(得分:1)

对于C:string.h(对于strcpy,strcmp,memcpy之类的函数)和stdio.h(对于printf和朋友)。

答案 14 :(得分:1)

显然标准的C库(它的良好文档位于http://www.cppreference.com/wiki/)。除此之外,它实际上取决于你的朋友想要做什么样的事情。

如果他真的想做数字化的东西(并且非常关心性能),那么libblas就是他想要的http://www.netlib.org/blas/

答案 15 :(得分:1)

关于C ++,他的Boost库(http://www.boost.org/)是最常用的库,所以你应该从那里开始,如果你已经了解C ++(与我在之前的一些答案中看到的相反,你必须明白STL现在是标准的一部分,因此是C ++语言的一部分。)

有太多其他库可供选择,所有都取决于你打算生产什么,如果你有“必须”知道的话,它无疑是一个GUI库,如果你不介意膨胀尝试看看Qt(www.qtcentre.org),这个会给你一个几乎完整的工具集。

请记住,在您投入一些时间学习新API之前,您应该选择那些不太新且真正免费的,没有附加条件且没有平台锁定的API,这包括GPL许可证,因为它会限制您生成GPL代码。

答案 16 :(得分:1)

我建议您查看ACE库,特别是如果您想进入分布式和跨平台开发。对于“新手”来说可能有点多,但在学习STL和Boost之后,这是一个很好的下一步。 ACE还提供实施的设计模式。

http://www.cse.wustl.edu/~schmidt/ACE.html

答案 17 :(得分:0)

如果为Windows写作,我建议使用MFC

答案 18 :(得分:0)

我也是C编程的新手,但这套库绝对足以编写简单的程序。希望这些帮助。

1)**stdio.h** for instance: scanf, printf, fopen, fseek, feof.
2)**string.h** for instance: strlen, memmove, strtok.
3)**stdlib.h** for instance: malloc, calloc, realloc, strtol.
4)**math.h** for instacne: abs, log, sin, cos.
5)**limits.h**
6)**ctype.h**
7)**errno.h**