1. boost库下载
1)下载boost库源码:https://www.boost.org/
2)以1.81版本为例,安装包如下
3)下载后解压
比如我是放在E盘下面的boost文件夹
2. 安装配置
1)打开VS2022命令行
2)切换安装目录cd /d 自己的安装位置
3)运行bootstrap.bat
4)生成b2.exe
5)命令行运行:b2 address-model=64
以64位编译器为例
6)新建项目想使用boost库
包含目录:E:\boost\boost_1_81_0
包含库目录:E:\boost\boost_1_81_0\stage\lib
3.代码测试
#include <boost/lexical_cast.hpp>
#include <iostream>
using namespace std;
using namespace boost;
int main(){
double a = lexical_cast<double>("3.141592");
string str = lexical_cast<string>("3.141592");
cout << "This is a number: " << a << endl;
cout << "This is a string: " << str << endl;
int b = 0;
try {
b = lexical_cast<int>("xiaomi_su7");
}
catch (bad_lexical_cast& e) {
cout << e.what() << endl;
}
return 0;
}
运行后输出如下:
4. boost分类
4.1 字符串和文本处理
a) Conversion
b) Format
c) IOStream
d) Lexical Cast
e) Regex
f) Spirit
g) String Algo
h) Tokenizer
i) Wave
j) Xpressive
4.2 容器
a) Array
b) Bimap
c) Circular Buffer
d) Disjoint Sets
e) Dynamic Bitset
f) GIL
g) Graph
h) ICL
i) Intrusive
j) Multi-Array
k) Multi-Index
l) Pointer Container
m) Property Map
n) Property Tree
o) Unordered
p) Variant
4.3 迭代器
a) GIL
b) Graph
c) Iterators
d) Operators
e) Tokenizer
4.4 算法
a) Foreach
b) GIL
c) Graph
d) Min-Max
e) Range
f) String Algo
g) Utility
4.5 函数对象和高阶编程
a) Bind
b) Function
c) Functional
d) Functional/Factory
e) Functional/Forward
f) Functional/Hash
g) Lambda
h) Member Function
i) Ref
j) Result Of
k) Signals
l) Signals2
m) Utility
4.6 泛型编程
a) Call Traits
b) Concept Check
c) Enable If
d) Function Types
e) GIL
f) In Place Factory, Typed In Place Factory
g) Operators
h) Property Map
i) Static Assert
j) Type Traits
4.7 模板元编程
a) Function Types
b) Fusion
c) MPL
d) Proto
e) Static Assert
f) Type Traits
4.8 预处理元编程
a) Preprocessors
4.9 并发编程
a) Asio
b) Interprocess
c) MPI
d) Thread
4.10 数学和数字
a) Accumulators
b) Integer
c) Interval
d) Math
e) Math Common Factor
f) Math Octonion
g) Math Quaternion
h) Math/Special Functions
i) Math/Statistical Distributions
j) Multi-Array
k) Numeric Conversion
l) Operators
m) Random
n) Rational
o) uBLAS
4.11 排错和测试
a) Concept Check
b) Static Assert
c) Test
4.12 数据结构
a) Any
b) Bitmap
c) Compressed Pair
d) Fusion
e) ICL
f) Multi-Index
g) Pointer Container
h) Property Tree
i) Tuple
j) Uuid
k) Variant
4.13 图像处理
a) GIL
4.14 输入输出
a) Asio
b) Assign
c) Format
d) IO State Savers
e) IOStreams
f) Program Options
g) Serialization
4.15 跨语言混合编程
a) Python
4.16 内存管理
a) Pool
b) Smart Ptr
c) Utility
4.17 解析
a) Spirit
4.18 编程接口
a) Function
b) Parameter
4.19 杂项
a) Compressed Pair
b) Conversion
c) CRC
d) Date Time
e) Exception
f) Filesystem
g) Flyweight
h) Lexical Cast
i) Meta State Machine
j) Numeric Conversion
k) Optional
l) Polygon
m) Program Options
n) Scope Exit
o) Statechart
p) Swap
q) System
r) Timer
s) Tribool
t) Typeof
u) Units
v) Utility
w) Value Initialized
4.20 编译器问题的变通方案
a) Compatibility
b) Config
5.常用库
Regex:正则表达式库
Spirit:LL parser framework,用C++代码直接表达EBNF
Graph:图组件和算法
Lambda:在调用的地方定义短小匿名的函数对象,很实用的functional功能
concept check:检查泛型编程中的concept
Mpl:用模板实现的元编程框架
Thread:可移植的C++多线程库
Python:把C++类和函数映射到Python之中
Pool:内存池管理
smart_ptr:5个智能指针