我正在寻找一些新的库以及C和C ++。在过去的大部分时间里,我“偶然”偶然发现了一些 - 其中大多数在我工作的项目中都有很好的用途。
库应该在Mac OS X和Linux / POSIX上运行,可能在Windows上运行。
这应该标记为社区维基。如果您有兴趣添加一些内容,请更新!
谢谢!
我不是在寻找像Boost或STL这样的“生产力”库。相反,我正在寻找随机类型的“有趣的新东西” - 无论是图形库,脚本库,网络甚至MOD / MIDI播放库。对不起,我之前没有说清楚。
答案 0 :(得分:22)
STL和Boost是必须的。
SQLite提供了一个完全嵌入的,功能齐全的关系数据库,只需几百k就可以包含在您的项目中。它也是一种极具市场价值的技能,因为它具有很高的存在感(它包含在Mozilla Firefox以及Android和iOS中)。
如果您对创建用户界面感兴趣,请查看ncurses - 它是用于创建许多终端用户界面的库,对于创建游戏和shell实用程序非常有用。 Qt是一个很好的C ++ GUI框架。
如果您对图形或创建游戏感兴趣,请考虑SDL或OpenGL(如果您不介意仅使用Windows,请考虑使用DirectX)。
当然,有数千个有趣的图书馆。这真的取决于你感兴趣的东西。
答案 1 :(得分:12)
如果您正在进行图像处理等,那么OpenCV可能会让您感兴趣。
答案 2 :(得分:8)
每个C ++程序员都应该首先使用这两个库:
对于GUI
答案 3 :(得分:7)
为什么不尝试OGRE并查看3D图形?
答案 4 :(得分:5)
Visualization Library可能会引起人们的兴趣。 Check out this Gallery
Visualization Library是一个C ++ 高性能2D和中间件 基于3D图形应用程序 行业标准OpenGL 1.x-4.x, 旨在开发便携式 适用于Windows,Linux的应用程序 和Mac OS X操作系统。
Bullet Physics Library是一个开源物理引擎,具有3D碰撞检测,柔体动力学和刚体动力学。它用于游戏和电影中的视觉效果。
答案 5 :(得分:4)
答案 6 :(得分:4)
如果您想使用machine learning(分类器等等),Bayesian networks,或尝试创建自己的算法,但想要使用一些有用的工具(例如,现成的优化和线性代数工具)然后查看dlib。我认为它很棒,但我努力工作,所以我有偏见:)
答案 7 :(得分:3)
我喜欢玩cimg,它是一个非常好用,易于使用的图像库,非常适合搞乱:p
答案 8 :(得分:3)
提升但不是生产部分:)
Boost.Xpressive或如何在模板中编码正则表达式!
Boost.MPL将为模板的使用带来新的亮点,你将获得更精细的模板元编程,并深入挖掘SFINAE和模板演绎的细微之处。
Boost.Preprocessor将揭示预处理器的使用和滥用。当使用模板生成模板函数和类的多个重载时(实际上MPL基于它),它非常方便。随着......的出现,这种兴趣有所减少。
<强>的C ++ 0x!强>
新标准库及其主题!
学习使用std::future
和std::function
,发现lambdas的乐趣,基于范围的for
语法,auto
关键字!
C ++ 0x有这么多新玩具,它几乎就像一种新语言...而且它也是你旧技能的一个很好的刷子,也是 的好方法。
答案 9 :(得分:3)
答案 10 :(得分:2)
我知道您正在寻找可以集成到日常工作中的图书馆,但对于家庭项目,C ++ Wiimote库可能会带来一些有趣的项目:
答案 11 :(得分:2)
对于游戏开发 - OGRE
对于GUI开发 - wxWidgets- CrossPlatform GUI Library
这两个库都是开源的。
答案 12 :(得分:2)
Cinder和openFrameworks是创造性编码的绝佳工具包,正如他们所说的那样。这些库,或者更确切地说是库的集合,涵盖了从数学和网络到2D,3D图形,连接各种输入设备等的所有内容。
答案 13 :(得分:1)
我最后一次有趣地挖掘与c ++相关的东西是SWIG。 它是一个包装器/接口生成器,可以将c ++代码链接到Python。
意识到使用SWIG是多么简单,这本身就很有启发性。 然后你可以玩混合Python和C ++库。
玩得开心!
答案 14 :(得分:1)
Player/Stage Project是机器人控制界面和模拟库。您可以模拟机器人或在真实机器人上运行它。