Boost is a quasi-standard library, which is equivalent to the continuation and expansion of STL. Its design concept is close to STL, which is used to maximize the use of generics. However, compare STL, Boost is more practical.
STL is concentrated in the algorithm part, and Boost contains a lot of tool classes that can complete comparison work.
Boost mainly includes several large categories: string and text processing, container, iterator, algorithm, function object, and high-order programming, generic programming, template programming, pretreatment element programming, concurrent programming, mathematics related , Error correction and testing, data structure, input / output, cross-language support, memory related, gramatic analysis, miscellaneous.
Some libraries are cross-category, which is that it belongs to this category and belongs to that category.
In the text processing section, the Conversion / Lexcial_CAST class is used to "use C " methods to implement the conversion between the digital type and the string. It is mainly to replace a function such as ATOI and ITOA in the C standard library. Of course, one of the biggest benefits is to support generics.
The Format library provides convection "Printf-Like" features. The method of using% D,% s, etc., using% D,% s, etc., is still very convenient in many cases, and STL's iostream is lacking in such functions. Format adds this feature for Stream and features more than the original Printf.
Regex, this doesn't say much, the regular expression library. If people who need to do string analysis will understand how it is useful for regular expressions. However, in contrast, some people think that Microsoft's Grete is better, the resolution is faster, after all, there is no dog.
Spirit, this is a framework for LL analysis, and can analyze the files according to EBNF rules. (Don't tell me what is eBnf). It may be used for compilers. The average person is not used.
Tokenizer library. I used to see someone asked how to ask a string array in the 9CBS. Maybe some people envy VB's Split function. Now, Boost's Tokenizer also has the same function. If I have not remembered, this tokenizer also supports regular expressions, is it very cool?
Array: A packaging of arrays of constant size, likes to use arrays but distressed array positioning, and determine those who have functions such as array.
Dynamic_bitSet, dynamically allocated size BitSet, we know that there is a bitset in the STL, which provides a lot of convenience for the bit. Unfortunately, its size needs to be specified in the compile period. Now it is good, the running period dynamically allocates the size of BitSet.
GRAPH. The container and related algorithms of the figure are provided. I haven't used the picture in the program, and people who need to use can take a look.
Multi_Array provides a package of multidimensional arrays, should be more useful.
There is only one library in concurrent programming, Thread, provides a portable thread library, but I feel that I feel in the Windows platform. Because it is based on the POSIX thread, the support of POSIX in Windows is not very good.
In the next mathematical and numerical classes, there are many types of libraries in many value processing. I am not too familiar, but there are several classes here, such as Random random number, etc. .
Static_ASSERT provides an Assert function of the compiler.
Test library, a unit test frame, very good.
Concept_check provides a generic programming, a little inspection of generics, not very perfect, but it is better.
Data Type Class ANY, a secure class that can contain different objects. This container can contain different types of elements as the element type of the container. It is safe than using void *.
Compressed_Pair, almost in pair in STL. However, it is optimized to the empty element. Tuple, huh, maybe something that some people dream of. You can return a function to multiple values.
Cross-language support: python, huh, good stuff, can map C classes and functions to Python. The following is a few 9CBS about Boost.Python's Chinese information: http: //dev.9cbs.net/Article/19/19828.shtm, http: //dev.9cbs.net/article/19/19829.shtm , Http: //dev.9cbs.net/Article/19/19830.shtm, http: //dev.9cbs.net/Article/19/19831.shtm
Pool: Memory pool, huh, huh, don't be afraid of frequent distribution to release memory, causing memory fragments, don't have to achieve hard work.
Smart_ptr: Intelligent pointer, don't worry about the problem of memory leaks. However, the smart pointers in C are still not perfect. When you use it, you should be careful, don't do too skillful operation.
Date_time, this is a platform, class library unrelated implementation, if the program needs to cross the platform, you can consider this.
Timer provides a timer, although not the message-based timer in Windows, but it is said to measure the execution time of the statement.
A NoncopyAble class is provided in the UITLITY that enables "unable to copy". In many cases, we need to avoid a class being copied, such as a class representing the file handle, and the file handle is shared by two instances, there will be many problems on the operation, and the semantics can't be said. The general way to avoid instance replication is to put copy constructs and operator = privatize, and now you can inherit this class, it is a lot.
Value_initialized: Numerical initialization, can ensure that the object of declaration is explicitly initialized, but is this really practical? It seems that this is also tired than the direct write initialization. Oh, the benevolent sees the benevolence.
In addition to Regex, Python and Test need to be used to compile out libraries, most of them can directly source code applications, more convenient. In fact, these libraries are not difficult. The most important reason is that some libraries need to have related background knowledge, such as meta programming, STL, generic programming, etc.