![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
Z.XiaoLu
这个作者很懒,什么都没留下…
展开
-
(&((type *)0)->member)))
C原创 2023-03-05 12:30:55 · 126 阅读 · 0 评论 -
cmake的使用
cmake原创 2022-12-11 12:50:39 · 173 阅读 · 0 评论 -
阿米优选操作流程
![请添加图片描述在这里插入图片描述原创 2021-11-22 16:18:04 · 259 阅读 · 0 评论 -
clion配置opencv
预备:clioncmake(这里需要把cmake解压后目录bin文件夹放到系统环境变量Path中:如D:\cmake-3.7.2\bin)opencvgcc/mingw(解压后目录bin文件夹放到系统环境变量Path中:如D:\gcc\bin)安装以上软件,基本都是一路 next ,最后做一下系统环境变量的配置(右击我点电脑->属性->高级系统设置->环境变量->系统变量->编辑Path,添加对应软件bin所在目录,中间分号分隔)。最后打开Clion,依次进入Sett原创 2021-11-03 18:42:09 · 5045 阅读 · 0 评论 -
git的配置(key)
设置名字和邮箱git config --global user.name="your name"git config --global user.email="邮箱"生成公钥ssh-keygen -t rsa -C "邮箱@qq.com"拷贝.ssh/id_rsa.pub 所有文件到git网站add key复制之后就可以了原创 2021-08-23 15:31:51 · 411 阅读 · 0 评论 -
go context
5、Go Context控制并发有两种经典的方式,一种是WaitGroup,另外一种就是Context,今天我就谈谈Context。WaitGroup它是一种控制并发的方式,它的这种方式是控制多个goroutine同时完成。func main() { var wg sync.WaitGroup wg.Add(2) go func() { time.Sleep(2*time.Second) fmt.Println("1号完成") wg.Done() }() go func()原创 2021-08-02 19:47:42 · 122 阅读 · 0 评论 -
搭建k8s节点报错/proc/sys/net/bridge/bridge-nf-call-iptables contents are not set
解决方法执行下面的脚本echo "1" >/proc/sys/net/bridge/bridge-nf-call-iptables原创 2021-07-07 11:27:43 · 293 阅读 · 0 评论 -
在VScode上配置golang的开发环境
1、配置环境变量如图:GO111MODULE设置位on(结束后记得改回auto或者off)GOPROXY设施如上的网址2、重新打开VScodeCRTL+SHIFT+P,输入go.install。。。选go.install/update全部勾选上,点击确认即可原创 2021-06-29 14:36:55 · 138 阅读 · 0 评论 -
利用OpenCv叠加时间
#include<atltime.h>using namespace cv; while (1) { Mat img = imread("123.bmp", -1); if (img.empty()) { return -1; } CTime m_StartTime1 = CTime::GetCurrentTime(); CString filename = m_StartTime1.Format(_T("%Y-%m-%d %H:%M:%S")); s原创 2021-06-14 20:33:48 · 240 阅读 · 1 评论 -
几种数据结构和算法的代码实现
几种数据结构的代码实现1、vectorclass DynamicBitset {private: int cap_ = 0; int size_ = 0; bool* contain_ = nullptr;public: void push_back(bool value) { ++size_; if (size_ <= cap_) { contain_[size_ - 1] = value; } else { bool *temp = new bool原创 2021-06-05 11:27:20 · 526 阅读 · 0 评论 -
设计模式笔记
设计模式1、简单工厂模式工厂模式的概念是什么?业务逻辑要与界面逻辑分开,让它们的耦合度降低。紧耦合和松耦合编程是一门技术,更是一门艺术,不能只满足于写完代码运行结果正确就完事了,时常考虑如何让代码更加简练,更加容易维护,容易扩展和复用,这样才能有所提高。class OPeration{private: double number_A=0; double number_B=0;public: virtual double GetResult(){ double原创 2021-06-05 11:24:53 · 96 阅读 · 0 评论 -
QT配置文件设置(QSetting)
直接上代码:(配置文件 .ini需要放在debug或者release下)头文件:#ifndef CONFIG_H#define CONFIG_H#include <QSettings>#include <memory>#include <Qstring>enum ImageType{ INFRARED, VISIABLE, UNDEFINED};class Config{public: static Confi原创 2021-06-03 12:16:15 · 703 阅读 · 0 评论 -
做题时的输入(需要注意的)
1、分行输入例如:3 4 5 7 8 0 3 5int main() { std::vector<int> buffer; int temp = 0; while (std::cin>>temp) { buffer.push_back(temp); if (getchar() == '\n') { break; } } int K = 0; std::cin >> K;// for (const auto& iter :原创 2021-05-30 21:06:09 · 95 阅读 · 0 评论 -
仿函数的使用(优先队列)
最大堆力扣23/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), n原创 2021-05-28 14:11:46 · 76 阅读 · 0 评论 -
Class declaration lackQ_OBJECT
参考:error : Class declarations lacks Q_OBJECT macro原创 2021-05-26 20:09:45 · 153 阅读 · 0 评论 -
数学问题
最大公因数:利用辗转相除法,最小公倍数:将两个数相乘再除以最大公因数即可得到最小公倍数int gcd(int a,int b){ return b==0?a;gcd(b,a%b);}int lcm(int a,int b){ return a*b/gcd(a,b);}进制转化(限于10以下)进制转换类型的题,通常是利用除法和取模(mod)来进行计算,同时也要注意一些细节,如负数和零。如果输出是数字类型而非字符串,则也需要考虑是否会超出整数上下界。class Solution {原创 2021-05-25 15:49:23 · 107 阅读 · 0 评论 -
分治+去重
#include <iostream>#include <algorithm>#include <string>#include <vector>#include <string>class Solution {public: std::vector<int> diffWaysToCompute(std::string expression) { int len = expression.size(); std:原创 2021-05-25 14:10:16 · 78 阅读 · 0 评论 -
状态机
参考视频:实现电梯在不同的状态之间进行转化,但是每个状态是单一的事件。而且按照逻辑一步一步进行。/* standard lib */#include <stdio.h> // printf #include <stdbool.h> // bool for _Bool and true for 1#include <conio.h> // for clrscr, and getch()#include "stdlib.h" // for rand()#incl原创 2021-05-25 11:44:56 · 78 阅读 · 1 评论 -
C++类的内存大小(64位)
数据类型32位(byte)64位(byte)int44unsigned int44long48unsigned long48long long88double88float44指针24char/unsigned char11short int/short221.空类所占字节数为1,可见代码如下#include <iostream>using namespace std;...原创 2021-05-07 12:35:28 · 822 阅读 · 0 评论 -
B站笔记
计算机网络笔记转载 2021-04-14 13:06:19 · 73 阅读 · 0 评论 -
单例模式
参考内容单例模式:懒汉模式(有锁+智能指针)#include <memory>#include <mutex>class SRIO {public: //typedef std::shared_ptr<SRIO> Ptr; SRIO& operator=(const SRIO&) = delete; SRIO(SRIO&) = delete; ~SRIO() { std::cout << "deconstrute原创 2021-04-11 14:30:19 · 59 阅读 · 0 评论 -
Effective C++阅读笔记
Effective C++1、让自己习惯C++1、C++是四个语言组成的,每个语言有自己的规则。(四种语言:Plain C(面向过程)、OOP(面向对象)、模板(泛型和模板元编程)、STL(C++标准库))2、尽量以inline、enum、const代替#define。3、灵活使用const前缀。不需要进行改变的数据加上const前缀。指针的const前缀有两种形式,const放在*左边表示数据不变,放右边表示指针地址不变。返回不需要修改的成员数据的成员函数需要加上const标记。(成员函数+con原创 2021-02-02 20:49:32 · 149 阅读 · 0 评论 -
函数指针的使用
函数指针具体的写法有略微不同(这是自己尝试按逻辑写的),可能VS有兼容性,这里可以让函数指针等于函数,也可以调用的时候直接使用函数指针。情况一:int out(int a) { return a;}int main(){ typedef int(*func)(int a); func f = &out; //也可以这样,下面不变func f = out std::cout<<(*f)(5); //也可以这样,上面不变std::cout<<f(5);原创 2021-01-31 17:04:18 · 61 阅读 · 0 评论 -
vs写日志文件
#include <iostream>#include "spdlog/sinks/rotating_file_sink.h"#include "spdlog/spdlog.h"#include "spdlog/fmt/bin_to_hex.h"class LOG {public: LOG() { auto logger = spdlog::rotating_logger_mt("srio", "log/SrioVideoCtlRotating.txt", 2 * 1024原创 2021-01-19 21:23:48 · 457 阅读 · 0 评论 -
github提交代码的过程
转载其实也可以参考图片上的建议删除远源是:git remote rm origin转载 2021-01-14 21:43:32 · 98 阅读 · 0 评论 -
VS添加配置文件
例子:配置a的值GetPrivateProfileInt =>从ini配置文件取得目标数值 <参数> lpApplicationName String,指定在其中查找条目的小节。注意这个字串是不区分大小写的 lpKeyName String,欲获取的设置项或条目。这个支持不区分大小写 nDefault Long,指定条目未找到时返回的默认值 lpFileName String,初始化文件的名字。如果没有指定完整的路径名,windows就会在Windows目录中搜索文件p1:头文件和用原创 2021-01-14 20:23:58 · 1159 阅读 · 0 评论 -
VS生成和使用动态库(.dll)
VS生成和使用动态库(.dll)生成动态库1、在包含需要导出的接口或者类的头文件中,添加如下代码:#ifdef EXPORT_OUT#define EXPORT_API __declspec(dllexport)#else#define EXPORT_API __declspec(dllimport)#endif // __declspec和dllexport、dllimport为C++保留字段,用于区别此时程序是在生成动态库(dllexport)还是在被其他程序调用动态库(dllimpo原创 2021-01-09 22:52:36 · 861 阅读 · 2 评论 -
QT环境配置的常见问题(动态库和静态库)
LIBS:静态库(直接在 .pro文件里面配置)DLL:动态库(要么在计算机的环境变量中添加,要么直接把需要的动态库添加到需要的debug目录下)原创 2021-01-05 16:19:47 · 297 阅读 · 0 评论 -
C++typedef的详细用法
作者:知乎用户链接:https://www.zhihu.com/question/29798061/answer/144423125来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。介绍对于复杂的定义和声明:右左法则这个时候在此基础运用typedef...原创 2020-12-28 15:01:57 · 65 阅读 · 0 评论 -
callback函数
回调函数编程分为两类:系统编程(system programming)和应用编程(application programming)。所谓系统编程,简单来说,就是编写库;而应用编程就是利用写好的各种库来编写具某种功用的程序,也就是应用。系统程序员会给自己写的库留下一些接口,即API(application programming interface,应用编程接口),以供应用程序员使用。所以在抽象层的图示里,库位于应用的底下。当程序跑起来时,一般情况下,应用程序(application program)会原创 2020-12-16 20:08:18 · 144 阅读 · 0 评论 -
inline函数
inline函数转载 2020-12-16 19:01:58 · 73 阅读 · 0 评论 -
深度探索C++对象模型
深度探索C++对象模型第一章 关于对象1.1 C++对象模型Nonstatic data members被配置于每一个class object内static data members 被存放在所有的class object之外static 和 nonstatic function members 也被存放在所有的class oject之外Virtual functions 分为以下两步:每个class产生一堆指向virtual functions的指针,放在表格中。这个表格被称为virtua原创 2020-12-10 20:07:39 · 584 阅读 · 0 评论 -
C++ 虚拟继承问题
参考:C++ 虚拟继承问题虚拟继承解决二义性问题,保证无论派生多少次,只产生一次实例。我们看下面一种情景:class A{public: int a;};class B : public A{public: int b;};class C : public A{public : int C;};class D : public B, public C{public: void func() { }};为了更加方便理解,用图表示:在这里插入图片原创 2020-12-10 15:48:05 · 304 阅读 · 0 评论 -
C++ 中explicit的作用
explicitexplicit用来防止构造函数定义中的隐式转换隐式转换:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。class things{ public: things(const std::string&name =""): m_name(name),height(0),weight(10){} int CompareTo(const things & other);原创 2020-12-10 14:21:28 · 863 阅读 · 0 评论 -
c++ 并发多线程学习笔记
1、线程启动/结束1.1、thread,join(),detach(),joinable()基本用法#include<iostream>#include<thread>void myPrint(){ std::cout<< "我的线程开始运行"<<std::endl; //。。。。。。 //........... std::cout << "我的线程结束运行" << std::endl;}int main(voi原创 2020-12-08 21:02:31 · 286 阅读 · 0 评论 -
C++ unordered_map容器在const修饰下将无法使用“[]“来获取键值
C++ unordered_map容器在const修饰下将无法使用"[]"来获取键值在写代码中发现这个现象。(可推及至一切Map衍生的容器)**解释:**对于const的对象使用了非const的成员函数:std::map::[]本身不是const成员函数(操作符),对于不在map中的关键字,使用下标操作符会创建新的条目,改变了map。解决方法: std::unordered_map.at(digit);...原创 2020-12-06 22:11:34 · 1486 阅读 · 0 评论 -
C++ 数值最大最小标识
参考转载 2020-12-01 20:02:54 · 263 阅读 · 0 评论 -
static_cast和dynamic_cast的区别
static_cast//用法:static_cast < type-id > ( exdivssion ) 该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型之间的转换,如把int转换成cha原创 2020-12-01 16:38:23 · 437 阅读 · 0 评论 -
strlen()和sizeof()的区别
strlen()strlen 是一个函数,它用来计算指定字符串 str 的长度,但不包括结束字符(即 null 字符)。size_t strlen(char const* str);char sArr[] = "ILOVEyou";std::cout<<"sArr的长度=%d\n"<< strlen(sArr));//返回是8,不包含最后一个null同时返回值是size_t,即是即无符号整型。sizeof()这里的示例代码运行结果为 9(因为它包括结束字符 null原创 2020-11-30 21:51:45 · 86 阅读 · 0 评论 -
malloc()和new()的区别
new(): 返回指定类型的指针,并且可以自动计算所需要大小。malloc ():则必须要由我们计算字节数,并且在返回后强行转换为实际类型的指针。malloc ()只管分配内存,并不能对所得的内存进行初始化,所以得到的一片新内存中,其值将是随机的。除了分配及最后释放的方法不一样以外,通过malloc或new得到指针,在其它操作上保持一致。...原创 2020-11-30 21:40:55 · 65 阅读 · 0 评论