C ++ Library Collection
Scientific Computing
1) blitz ++
Reference: http://www.oonumerics.org/blitz/
Blitz ++ is an efficient function library for numerical computing. It is designed to create a set of computing environments that are as convenient as C ++ and faster than FORTRAN. Generally, the numerical program written in C ++ is about 20% slower than that written in FORTRAN. Therefore, blitz ++ just wants to get rid of this shortcoming. The method is to use the C ++ template technology to execute programs faster than FORTRAN. Blitz ++ is still developing. It is not available for common Linear Algebra methods such as SVD, FFTS, and qmres, however, the user can easily use the functions provided by blitz ++ to construct the function.
2) pooma
Reference: http://www.codesourcery.com/pooma/pooma
Pooma is a free high-performance C ++ library for processing parallel scientific computing. Pooma's object-oriented design facilitates rapid Program Development and optimizes parallel machines to achieve the highest efficiency, making it easy to use in industrial and research environments.
3) MTL
Reference: http://www.osl.iu.edu/research/mtl/
Matrix Template Library (MTL) is a high-performance generic component library that provides a large number of linear algebra functions for various format matrices. When some applications use high-performance compilers, such as Intel compilers, the resulting assembly code shows that they have almost no different performance than handwriting.
4) cgal
Reference website: www.cgal.org
The computational geometry algorithms library aims to provide most of the important solutions and methods in computational ry to industrial and academic users in the form of a C ++ library.
Game Development
1) Audio/Video 3D C ++ programming library
Reference: http://www.galacticasoftware.com/products/av/
Av3d is a cross-platform, high-performance C ++ library. Its main features are 3D graphics, sound effects (SB, and s3m), control interfaces (keyboard, mouse, and remote sensing), and XMS.
2) klayge
Reference: http://home.g365.net/enginedev/
Domestic game developers use their own C ++ game engines. Klayge is an open-source, cross-platform game engine that uses python as the scripting language. Klayge is released under the lgpl protocol. I would like to thank Mr. Min for his contribution to the game development industry in China.
3) Ogre
Reference: http://www.ogre3d.org
Ogre (Object-Oriented Graphics Rendering Engine) is developed in C ++ and uses a flexible object-oriented 3D engine. It aims to allow developers to develop applications or games based on 3D hardware devices more conveniently and directly. The class libraries in the engine abstract all usage details of the underlying system libraries (such as direct3d and OpenGL), and provide interfaces and other classes based on real-world objects.
Thread
1) C ++ threads
Reference Site: http://threads.sourceforge.net/
The goal of this library is to provide programmers with easy-to-use classes that are inherited to provide a large number of thread functions that are hard to see in the Linux environment.
2) zthreads
Reference Site: http://zthread.sourceforge.net/
An advanced object-oriented, cross-platform C ++ thread and synchronization library.
Serialization
1) s11n
Reference Site: http://s11n.net/
A stl-Based C ++ library used to serialize pods, STL containers, and user-defined types.
2) simple XML persistence Library
Reference Site: http://sxp.sourceforge.net/
This is a lightweight C ++ library that serializes objects into XML.
String
1) C ++ STR Library
Reference: http://www.utilitycode.com/str/
The operating string and Character Library supports windows and multiple platforms that support GCC. Provides highly optimized code, multi-threaded environments, Unicode, and regular expressions.
2) common text transformation Library
Reference Site: http://cttl.sourceforge.net/
This is a library for parsing and modifying STL strings. The cttl substring class can be used for comparison, insertion, replacement, and parsing using the ebnf syntax.
3) Greta
Reference: http://research.microsoft.com/projects/greta/
This is a library developed by researchers at Microsoft Research Institute to process regular expressions. Excellent performance in the case of small matching.
Comprehensive
1) P: Classes
Reference Site: http://pclasses.com/
A highly portable C ++ application framework. Currently, the signal/slot mechanism is concerned with type and thread security. The I/O system includes a plug-in-based network protocol transparent I/O architecture and a plug-in-based application Message Log framework, access the SQL database.
2) acdk-artefaktur component development kit
Reference Site: http://acdk.sourceforge.net/
This is a platform-independent C ++ component framework, similar to Java or. net Framework (reflection mechanism, thread, Unicode, waste collection, I/O, network, utility, XML, etc.), as well as Java, Perl, Python, TCL, lisp, integration of COM and CORBA.
3) dlib C ++ Library
Reference website: http://www.cis.ohio-state.edu /~ Kingd/dlib/
A combination of various classes. Big integer, socket, thread, Gui, container class, and browsing directory APIs.
4) Chilkat C ++ Libraries
Reference Site: http://www.c> http://www.chilkatsoft.com/cpp_libraries.asp
This is a library that provides zip, e-mail, encoding, S/MIME, XML, and other aspects.
5) C ++ portable types Library (ptypes)
Http://www.melikyan.com/ptypes/'> http://www.melikyan.com/ptypes/
This is a simple replacement for STL and a portable multi-thread and network library.
6) LFC
Reference Site: http://lfc.sourceforge.net/
Oh, this is another c ++ library that tries to provide everything.
Other libraries
1) Loki
Reference Site: http://www.moderncppdesign.com/
Oh, you may complain that I should have introduced it with boost, an experimental library. The author puts the C ++ template function to the extreme in Loki. And try to provide things similar to the design pattern through libraries. It also provides such practical functions as smart pointers.
2) ATL
ATL (Active Template Library) is a group of small, efficient, and flexible classes that provide basic facilities for creating interoperable COM components.
3) FC ++: the functional C ++ Library
This library provides some elements that are only available in functional languages. A masterpiece that uses libraries to expand languages. If you want to find another point of fun outside of OOP, you can look at the world of functional programming. In the article "Teach Yourself programming in ten years", Master Peter norvig lists functional languages as one of at least six programming languages that should be learned.
4) Fact!
Reference: http://www.kfa-juelich.de/zam/FACT/start/index.html
Another library that implements functional language features
5) crypto ++
Free database for password processing, message verification, one-way hash, and public key encryption systems.
There are also many very exciting or extremely practical C ++ libraries, which are limited to our level and the length of the article cannot be included. In the introduction to these libraries that have recently been included, since not all of them have been used, we are inevitably biased. Please forgive me.
6) managed C ++ wrapper for zlib
Compression component zlib C ++ class library
7) cppsqlite-C ++ wrapper for SQLite
SQLite C ++ package Library
8) cximage
Image Format Conversion
Resource website
Just as we can learn about the development of computer history through important figures in computer history, the websites of C ++ related figures can also give us the most valuable reference and reference, the following figures do not need to be introduced because the following figures are well known in the C ++ field. We only list relevant resources for readers to learn, some of them work in Bell Labs, some are well-known compiler manufacturers, some are constantly promoting language standardization, and some are writing many Qihoo works for readers ......
Bjarne stroustrup http://www.research.att.com /~ BS/
Stanley B. Lippman http: // blogs.msdn.com/slippman/ (Chinese http://www.zengyihome.net/slippman/index.htm)
Scott Meyers http://www.aristeia.com/
David musser http://www.cs.rpi.edu /~ Musser/
Bruce Eckel http://www.bruceeckel.com
Niclai M. josutis http://www.josuttis.com/
Herb Suter http://www.gotw.ca/
Andrei Alexandrescu http://www.moderncppdesign.com/