C++ 杂项
Info
众所周知,千万不要说你精通C++,C++的确是一门内容很复杂的语言
函数
带默认参数的函数
默认参数必须放在最后
函数重载
C++允许函数重载,即同名但参数不同的函数,是不是const之类的也可以触发重载
lambda 表达式
C++ 中的 lambda 表达式是匿名函数的一种,用于创建内联的、可以在函数内部使用的小函数。它们使代码更加简洁,特别是在需要短小的函数对象时。要用好Labmda表达式并不简单。
- capture:捕获列表,指定 lambda 函数如何捕获外部变量。可以使用
[]表示不捕获,[&]表示按引用捕获,[=]表示按值捕获。 - parameters:参数列表,类似于普通函数的参数列表。如果没有参数,可以省略。
- return_type:返回类型,可以省略,由编译器自动推导。
- function body:函数体,lambda 表达式的具体实现。
正则表达式
其实很多语言都提供了正则表达式,语法上会有细微的差距
随机数
C的随机数是伪随机数,而且不方便调整范围、精度、分布等参数,C++提供了提供了更好的随机数库,在 C++ 中,可以使用标准库中的
智能指针
-
std::unique_ptr:-
特点:独占式智能指针,确保同一时间只有一个
unique_ptr拥有所指向的对象。 -
使用:通过
std::move可以转移unique_ptr的所有权。 -
示例:
-
-
std::shared_ptr:-
特点:共享式智能指针,允许多个
shared_ptr实例共享同一个对象。引用计数机制用于跟踪多少个shared_ptr指向相同的对象,当最后一个shared_ptr被销毁时,对象也被销毁。 -
使用:不需要手动管理引用计数。
-
示例:
-