学习boost的一些我的体会

本文详细介绍了Boost库的不同类别,包括字符串和文本处理、容器、迭代器、算法等。涉及了如lexical_cast、iostreams、regex、array、graph、function对象、algorithm等关键组件。通过这些库,可以实现类型安全的格式化操作、多维数组、图算法、函数对象等高级编程功能。同时,还涵盖了并发编程、数学和数值计算、输入/输出等多个方面,为C++程序员提供了丰富的工具和资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我以前也学习过一些boost的东西,主要是any,shared_ptr觉得非常不错,lambd表达式由于编译器不支持所以没有用起来。为了在c++方面取得更多的成绩,我决定从头开始学习boost,但是boost非常庞大,我决定按照boost自带的帮助文档列出来的目录来学习。有些库需要编译,我将会学习这个库的时候再编译,节省开始学习时的难度和提高学习速度。下面我将会列出学习的清单
Libraries Listed by Category
String and text processing Containers Iterators Algorithms Function Objects and higher-order programming Generic Programming Template Metaprogramming Preprocessor Metaprogramming Concurrent Programming Math and numerics Correctness and testing Data structures Input/Output Inter-language support Memory Parsing Programming Interfaces Miscellaneous Broken compiler workarounds
 

Libraries Listed by Category

String and text processing

  • conversion/lexical_cast - lexical_cast class template, from Kevlin Henney.
  • format - Type-safe 'printf-like' format operations, from Samuel Krempp.
  • iostreams - Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
  • regex - Regular expression library, from John Maddock
  • spirit - LL parser framework  represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman and team.
  • string_algo - String algorithms library, from Pavol Droba
  • tokenizer - Break of a string or other character sequence into a series of tokens, from John Bandela
  • wave - Standards conformant implementation of the mandated C99/C++ preprocessor functionality packed behind an easy to use iterator interface, from Hartmut Kaiser.
  • xpressive - Regular expressions that can be written as strings or as expression templates, and that can refer to each other and themselves recursively with the power of context-free grammars, from Eric Niebler.

Containers

  • array - STL compliant container wrapper for arrays of constant size, from Nicolai Josuttis.
  • dynamic_bitset - A runtime sized version of std::bitset from Jeremy Siek and Chuck Allison.
  • graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team.
  • multi_array - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.
  • multi_index - Containers with multiple STL-compatible access interfaces, from Joaquín M López Muñoz.
  • pointer container - Containers for storing heap-allocated polymorphic objects to ease OO-programming, from Thorsten Ottosen.
  • property map - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.
  • variant - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.

Iterators

  • graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team.
  • iterators - Iterator construction framework, adaptors, concepts, and more, from Dave Abrahams, Jeremy Siek, and Thomas Witt.
  • operators - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.
  • tokenizer - Break of a string or other character sequence into a series of tokens, from John Bandela.

Algorithms

  • foreach - BOOST_FOREACH macro for easily iterating over the elements of a sequence, from Eric Niebler.
  • graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team.
  • minmax - standard library extensions for simultaneous min/max and min/max element computations, from Hervé Brönnimann.
  • string_algo - String algorithms library, from Pavol Droba
  • utility - Class next(),  prior() function templates, from Dave Abrahams and others.
  • range - A new infrastructure for generic algorithms that builds on top of the new iterator concepts, from Thorsten Ottosen.

Function objects and higher-order programming

  • bind and mem_fn - Generalized binders for function/object/pointers and member functions, from Peter Dimov.
  • function - Function object wrappers for deferred calls or callbacks, from Doug Gregor.
  • functional - Enhanced function object adaptors, from Mark Rodgers.
  • functional/hash - A TR1 hash function object that can be extended to hash user defined types, from Daniel James.
  • lambda - Define small unnamed function objects at the actual call site, and more, from Jaakko Järvi and Gary Powell.
  • ref - A utility library for passing references to generic functions, from Jaako Järvi, Peter Dimov, Doug Gregor, and Dave Abrahams.
  • signals - managed signals & slots callback implementation, from Doug Gregor.
  • result_of - determines the type of a function call expression.

Generic Programming

  • call_traits - Defines types for passing parameters, from John Maddock, Howard Hinnant, et al.
  • concept check - Tools for generic programming, from Jeremy Siek.
  • enable_if - Selective inclusion of function template overloads, from Jaakko Järvi, Jeremiah Willcock, and Andrew Lumsdaine.
  • in_place_factory, typed_in_place_factory- Generic in-place construction of contained objects with a variadic argument-list, from Fernando Cacciola.
  • operators - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.
  • property map - Concepts defining interfaces which map key objects to value objects, from Jeremy Siek.
  • static_assert - Static assertions (compile time assertions), from John Maddock.
  • type_traits - Templates for fundamental properties of types, from John Maddock, Steve Cleary, et al.

Template Metaprogramming

  • mpl - Template metaprogramming framework of compile-time algorithms, sequences and metafunction classes, from Aleksey Gurtovoy.
  • static_assert - Static assertions (compile time assertions), from John Maddock.
  • type_traits - Templates for fundamental properties of types, from John Maddock, Steve Cleary, et al.

Preprocessor Metaprogramming

  • preprocessor - Preprocessor metaprogramming tools including repetition and recursion, from Vesa Karvonen and Paul Mensonides.

Concurrent Programming

  • thread - Portable C++ multi-threading, from William Kempf.

Math and numerics

  • math - Several contributions in the domain of mathematics, from various authors.
  • numeric/conversion - Optimized Policy-based Numeric Conversions, from Fernando Cacciola.
  • integer - Headers to ease dealing with integral types.
  • interval - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Hervé Brönnimann and Sylvain Pion.
  • math/common_factor - Greatest common divisor and least common multiple, from Daryle Walker.
  • math/octonion - Octonions, from Hubert Holin.
  • math/quaternion - Quaternions, from Hubert Holin.
  • math/special_functions - Mathematical special functions such as atanh, sinc, and sinhc, from Hubert Holin.
  • multi_array - Multidimensional containers and adaptors for arrays of contiguous data, from Ron Garcia.
  • operators - Templates ease arithmetic classes and iterators, from Dave Abrahams and Jeremy Siek.
  • random - A complete system for random number generation, from Jens Maurer.
  • rational - A rational number class, from Paul Moore.
  • uBLAS - Basic linear algebra for dense, packed and sparse matrices, from Joerg Walter and Mathias Koch.

Correctness and testing

  • concept check - Tools for generic programming, from Jeremy Siek.
  • static_assert - Static assertions (compile time assertions), from John Maddock.
  • test - Support for simple program testing, full unit testing, and for program execution monitoring, from Gennadiy Rozental.

Data structures

  • any - Safe, generic container for single values of different value types, from Kevlin Henney.
  • compressed_pair - Empty member optimization, from John Maddock, Howard Hinnant, et al.
  • multi_index - Containers with multiple STL-compatible access interfaces, from Joaquín M López Muñoz.
  • pointer container - Containers for storing heap-allocated polymorphic objects to ease OO-programming, from Thorsten Ottosen.
  • tuple - Ease definition of functions returning multiple values, and more, from Jaakko Järvi.
  • variant - Safe, generic, stack-based discriminated union container, from Eric Friedman and Itay Maman.

Input/Output

  • format - Type-safe 'printf-like' format operations, from Samuel Krempp.
  • io state savers - Save I/O state to prevent jumbled data, from Daryle Walker.
  • iostreams - Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
  • program_options - Access to configuration data given on command line, in config files and other sources, from Vladimir Prus.
  • serialization - Serialization of arbitrary data for persistence and marshalling, from Robert Ramey
  • assign - Filling containers with constant or generated data has never been easier, from Thorsten Ottosen.

Inter-language support

  • python - Reflects C++ classes and functions into Python, from Dave Abrahams.

Memory

  • pool - Memory pool management, from Steve Cleary.
  • smart_ptr - Five smart pointer class templates, from Greg Colvin, Beman Dawes, Peter Dimov, and Darin Adler.
  • utility - Class noncopyable plus checked_delete(), checked_array_delete(), next(),  prior() function templates, plus base-from-member idiom, from Dave Abrahams and others.

Parsing

  • spirit - LL parser framework  represents parsers directly as EBNF grammars in inlined C++, from Joel de Guzman and team.

Programming Interfaces

  • function - Function object wrappers for deferred calls or callbacks, from Doug Gregor.
  • parameter - Write functions that accept arguments by name, by David Abrahams and Daniel Wallin.

Miscellaneous

  • base-from-member - Idiom to initialize a base class with a member, from Daryle Walker.
  • compressed_pair - Empty member optimization, from John Maddock, Howard Hinnant, et al.
  • conversion - Polymorphic and lexical casts, from Dave Abrahams and Kevlin Henney.
  • numeric/conversion - Optimized Policy-based Numeric Conversions, from Fernando Cacciola.
  • crc - Cyclic Redundancy Code, from Daryle Walker.
  • date_time - Date-Time library from Jeff Garland.
  • filesystem - Portable paths, iteration over directories, and other useful filesystem operations, from Beman Dawes.
  • optional - Discriminated-union wrapper for optional values, from Fernando Cacciola.
  • program_options - Access to configuration data given on command line, in config files and other sources, from Vladimir Prus.
  • statechart - Arbitrarily complex finite state machines can be implemented in easily readable and maintainable C++ code, from Andreas Huber.
  • timer - Event timer, progress timer, and progress display classes, from Beman Dawes.
  • TR1 - An implementation of the Technical Report on C++ Library Extensions, using other Boost libraries as a basis, from John Maddock.
  • tribool - 3-state boolean type library, from Doug Gregor.
  • typeof - Typeof operator emulation, from Arkadiy Vertleyb and Peder Holt.
  • utility - Class noncopyable plus checked_delete(), checked_array_delete(), next(),  prior() function templates, plus base-from-member idiom, from Dave Abrahams and others.
  • value_initialized - Wrapper for uniform-syntax value initialization, from Fernando Cacciola, based on the original idea of David Abrahams.

Broken compiler workarounds

  • compatibility - Help for non-conforming standard libraries, from Ralf Grosse-Kunstleve and Jens Maurer.
  • config - Helps boost library developers adapt to compiler idiosyncrasies; not intended for library users.

[Category suggestions from Aleksey Gurtovoy and Beman Dawes]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值