- 博客(59)
- 资源 (2)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 力扣刷题记录
leetcode刷题记录1、两数之和给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]vector与数组无区别方法一:暴力遍历class Solution {public: vector
2020-11-26 15:36:31
1179
原创 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
5055
原创 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
413
原创 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
125
原创 搭建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
296
原创 在VScode上配置golang的开发环境
1、配置环境变量如图:GO111MODULE设置位on(结束后记得改回auto或者off)GOPROXY设施如上的网址2、重新打开VScodeCRTL+SHIFT+P,输入go.install。。。选go.install/update全部勾选上,点击确认即可
2021-06-29 14:36:55
139
原创 利用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
241
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
528
原创 设计模式笔记
设计模式1、简单工厂模式工厂模式的概念是什么?业务逻辑要与界面逻辑分开,让它们的耦合度降低。紧耦合和松耦合编程是一门技术,更是一门艺术,不能只满足于写完代码运行结果正确就完事了,时常考虑如何让代码更加简练,更加容易维护,容易扩展和复用,这样才能有所提高。class OPeration{private: double number_A=0; double number_B=0;public: virtual double GetResult(){ double
2021-06-05 11:24:53
96
原创 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
707
原创 做题时的输入(需要注意的)
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
96
原创 仿函数的使用(优先队列)
最大堆力扣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
78
原创 Class declaration lackQ_OBJECT
参考:error : Class declarations lacks Q_OBJECT macro
2021-05-26 20:09:45
155
原创 数学问题
最大公因数:利用辗转相除法,最小公倍数:将两个数相乘再除以最大公因数即可得到最小公倍数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
109
原创 分治+去重
#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
80
原创 状态机
参考视频:实现电梯在不同的状态之间进行转化,但是每个状态是单一的事件。而且按照逻辑一步一步进行。/* 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
823
原创 单例模式
参考内容单例模式:懒汉模式(有锁+智能指针)#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
60
原创 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
原创 函数指针的使用
函数指针具体的写法有略微不同(这是自己尝试按逻辑写的),可能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
原创 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
459
原创 VS添加配置文件
例子:配置a的值GetPrivateProfileInt =>从ini配置文件取得目标数值 <参数> lpApplicationName String,指定在其中查找条目的小节。注意这个字串是不区分大小写的 lpKeyName String,欲获取的设置项或条目。这个支持不区分大小写 nDefault Long,指定条目未找到时返回的默认值 lpFileName String,初始化文件的名字。如果没有指定完整的路径名,windows就会在Windows目录中搜索文件p1:头文件和用
2021-01-14 20:23:58
1161
原创 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
865
2
原创 QT环境配置的常见问题(动态库和静态库)
LIBS:静态库(直接在 .pro文件里面配置)DLL:动态库(要么在计算机的环境变量中添加,要么直接把需要的动态库添加到需要的debug目录下)
2021-01-05 16:19:47
298
原创 C++typedef的详细用法
作者:知乎用户链接:https://www.zhihu.com/question/29798061/answer/144423125来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。介绍对于复杂的定义和声明:右左法则这个时候在此基础运用typedef...
2020-12-28 15:01:57
66
原创 callback函数
回调函数编程分为两类:系统编程(system programming)和应用编程(application programming)。所谓系统编程,简单来说,就是编写库;而应用编程就是利用写好的各种库来编写具某种功用的程序,也就是应用。系统程序员会给自己写的库留下一些接口,即API(application programming interface,应用编程接口),以供应用程序员使用。所以在抽象层的图示里,库位于应用的底下。当程序跑起来时,一般情况下,应用程序(application program)会
2020-12-16 20:08:18
146
原创 深度探索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
592
原创 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
308
原创 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
原创 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
原创 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
1501
原创 static_cast和dynamic_cast的区别
static_cast//用法:static_cast < type-id > ( exdivssion ) 该运算符把exdivssion转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法:①用于类层次结构中基类和子类之间指针或引用的转换。 进行上行转换(把子类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成子类表示)时,由于没有动态类型检查,所以是不安全的。②用于基本数据类型之间的转换,如把int转换成cha
2020-12-01 16:38:23
439
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人