
cpp
蓝羽飞鸟
GO
展开
-
cpp 模板函数,类模板(1)
对应《c++ primer 第五版》的第16章前半部分,这里是一个简单的总结。原创 2022-07-06 16:43:22 · 1192 阅读 · 0 评论 -
cpp namespace
namespace是用来干嘛的,考虑如下情况,假如你写了一个函数abc(), 但是巧了,另一个库中也有一个函数叫abc(), 要怎么区别调用的到底是哪个abc()?这时就需要namespace了,相当于提供了额外的信息以区分名字相同的函数,类,变量等。namespace的用法如下namespace namespace_name { // code declarations}假设命名空间的名字为name, 里面有个变量var,那么调用如下name::var;举个例子#include原创 2022-04-27 13:45:37 · 671 阅读 · 0 评论 -
cpp [&]
这意味着 lambda 函数将通过引用捕获范围内的所有变量。要在函数中使用传递给 lambda 的变量以外的其他变量,使用capture-clause []。可以通过引用和值来捕获,分别使用 & 和 = 指定:[=]按值捕获范围内的所有变量[&]通过引用捕获范围内的所有变量[&var]var通过引用捕获[&, var]指定默认的捕获方式是通过引用,要捕获var[=, &var]默认情况下按值捕获范围内的变量,但var使用引用捕获具体就是说,一个函数,参数原创 2022-04-27 09:14:34 · 509 阅读 · 0 评论 -
cpp enum & enum class
enum是枚举类型就不多说了,用于自定义的数据。现在说下enum和enum class有什么区别,为什么要用enum class。enum有几种限制:1.两个enum不能定义同样名称的数据,如下,会报重复定义的编译错误// Defining enum1 Gender enum Gender { Male, Female }; // Defining enum2 Gender2 with same values // This will throw error原创 2022-04-26 16:39:23 · 697 阅读 · 0 评论 -
cpp unique_lock
std::unique_lock use the RAII pattern.RAII 即 资源获取是初始化(Resource acquisition is initialization),在 RAII 中,持有资源是类不变量,并且与对象生命周期相关联。资源分配(或获取)在对象创建(特别是初始化)期间由构造函数完成,而资源释放(释放)在对象销毁(特别是终结)期间由析构函数完成. 换句话说,资源获取必须成功,初始化才能成功。因此,资源被保证在初始化完成和终结开始之间被持有(持有资源是一个类不变量),并且只在对原创 2022-04-25 08:48:33 · 418 阅读 · 0 评论 -
cpp 指针常量 & 常量指针 & 函数后const
指针常量 -> 指针本身是常量,指针本身无法修改,但是它指向的内容可以修改。因为指针本身是常量,声明的时候一定要赋值如:int* const c = &b;指针c是常量,所以const紧跟它,它是int* 指针,初始化为b的地址,c必须指向b,但是b可以修改,如果b是指针,可以通过修改b来修改c。常量指针 -> 常量的指针指针指向的是常量,所以指向的内容无法修改,指针本身可以修改。如:const int* p; int const* pp是指针,指向常量。cons原创 2022-04-12 15:25:20 · 558 阅读 · 0 评论 -
cpp std::bind std::cref std::ref 实例说明
举2个例子说明bind的用法,包含了std::cref 和 std::ref例子1:void f(int n1, int n2, int n3, const int& n4, int n5){ std::cout << n1 << ' ' << n2 << ' ' << n3 << ' ' << n4 << ' ' << n5 << '\n';}std::cou原创 2022-03-09 14:35:24 · 340 阅读 · 0 评论