Clay's Blog
  • 🔍 搜索
  • 🏡 主页
  • 📒 记录
  • 📛 标签
  • 📁 归档
  • 📖 关于
主页 » 📒 记录

📚 学习

C++学习记录(5) 类

0. 类的4个默认函数 4个函数:构造函数、析构函数、拷贝构造函数、赋值号重载函数。 在定义类时,如果没有自定义这些函数,编译器会提供默认的函数,在默认的函数中,构造函数、析构函数默认空实现,拷贝构造函数、赋值号重载函数默认是浅拷贝。 拷贝构造函数作用: 参数是一个同类型的对象,直接拷贝这个...

2021-02-17    3982字    Clay    C++

C++学习记录(4) 引用

0. 引用的本质 本质:引用在C++内部的实现是一个指针常量(* const)。 const就限制了必须要初始化,并且初始化以后不可更改。 它不是一个对象,所以没有引用的引用。 1. 注意事项 引用必须初始化 引用在初始化后不可修改 2. 引用做函数参数 与指针传递相似 3. 引用做函数返回值 与指针一样,不要返回局...

2021-02-16    228字    Clay    C++

C++学习记录(3) 常量指针与指针常量

两个比较容易混淆的概念。 0. 记忆方法 const int * p; int * const p; int const * p; 这是常见的三种写法,按照从左至右的顺序记忆,按照从右至左的顺序理解。 记忆 只关注const 和 * 的先后先后顺序,const读做常量,*读做指针。 参考《Effective c++》Item21上的做法,如果const位于星号的左侧...

2021-02-15    1334字    Clay    C++

单调栈与单调队列详解

1. 单调栈 1.1 可解决的问题 单调栈的使用场景时分有限,只处理一种典型的问题,叫做 Next Greater Element。 例如:在一个数组中,每个数左边(右边)第一个比它大(小)的数是什么。 1.2 详解 直接上例子解释它。 题目:给出一个原始数组 a[3, 4, 2, 7, 5],输出每个数左边第一个比它小的数,如果不存在则输出-1。 解释...

2021-02-09    2319字    Clay    数据结构与算法

C++学习记录(2) Lambda表达式(匿名函数)

Lambda表达式 Lambda表达式 形式 [capture](params) -> return-type{ function body } 说明 capture 需要捕获的外部变量列表(这里的外部变量不包括程序的全局变量,指的是匿名函数父作用域内的变量)。 如果这个匿名函数需要调用本匿名函数以外的变量,那么就需要在这个[ ] 中进行捕获,捕获包括捕获的变量名称和捕获的方式(值和引用)。 例...

2021-01-28    607字    Clay    C++

C++学习记录(1) 重写、重载、重构三者区别

0. 重构 重构是对程序内部的架构的调整。 重构强调的是在不改变"软件外部可观察的行为"前提下,对内部结构进行调整,使得从程序的外部功能上看,没有任何变化。 如下例子: 重构前代码如下: #include <iostream> class child { private: public: child(){}; void func(){ std::cout << 123 << std::endl; } }; int main(int argc, char const *argv[]) { child a; a.func(); return 0; } 程序运行后,输出123. 重...

2021-01-28    754字    Clay    C++

VS2017 OpenCV4.4.0使用Openvino加速dnn模块推理速度

Step0 准备文件 opencv-4.4.0.zip opencv_contrib-4.4.0.zip cmake-3.19.1-win64-x64_2.msi w_openvino_toolkit_p_2020.4.287.exe Step1 解压文件 安装cmake-3.19.1-win64-x64_2.msi和w_openvino_toolkit_p_2020.4.287.exe,都默认就好。 将opencv-4.4.0.zip解压到文件夹opencv440中 将opencv_contrib-4.4....

2020-12-15    1165字    Clay   

扩展欧几里得算法详解及C++代码实现

0. 欧几里得算法 欧几里得算法用于求解两个数的最大公约数。代码如下: int gcd(int a, int b){ if(b == 0) return a; return gcd(b, a % b); } 当b为0时,结束递归,此时a即为a和b的最大公约数。 1. 裴蜀定理 定理内容: 如果a、b均是整数,则一定存在整数x和y,使得ax + by = gcd(a, b)成立。 我们可以再深层次的理解一下式子ax + by = gcd(a, b...

2020-09-06    1719字    Clay    数据结构与算法

单片机AT指令操作GA6-B短信模块连接阿里云MQTT服务器(双向通信)

0. 前言 网上这种东西不太多,我也是看了不少资料弄出来了,觉得应该写点东西出来。 我用的板子不是arduino,用的是stm32,开发工具是Arduino IDE,因为Arduino IDE集成了较多的函数库,我们不用管底层的一些东西,都封装好了,写着方便一些。 当然,不管你板子是什么,这篇...

2020-04-30    5509字    Clay   

对快速幂代码的理解

模板代码: typedef long long ll; ll quick_pow(ll a,ll b){ ll res = 1; while(b > 0){ if(b & 1){ res *= a; } a *= a; b >>= 1; } return res; } 这里以a^10为例,说一下对快速幂代码的理解。 右下角的o表示这是十进制数 这里写错了,图片中不应该是o,应该d,d表示这是十进制数 ,b表示这是二进制数。可以得到以下的几个式子,都是逐步变换得出来的。 最后一个式...

2020-03-02    487字    Clay    数据结构与算法
« 上一篇 
© 2025 Clay's Blog Powered by Hugo & PaperMod