自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JACKSONMHLK的博客

北化在读生,记录平日所学

  • 博客(76)
  • 资源 (4)
  • 收藏
  • 关注

原创 C/C++ 程序是如何执行的,.h文件 .c文件之间的执行关系

众所周知——我们在学习的时候,课本上是这样写的,一个程序的执行需要四步:::源文件 经过预处理阶段->编译阶段->汇编阶段->链接阶段->可执行下面以一个平凡的例子,来描述自己的疑惑和所学。#include <stdio.h>int main(){ printf("hello"); return 0;}1、预处理阶段。预处理器根据以字符 # 开头的命令,修改原始的C程序。例如,hello.c 的第一行 #include <st

2021-01-02 19:02:26 3173

翻译 原子操作 CAS

原子操作 CAS

2022-07-30 19:56:56 398 1

转载 中断、信号、系统调用

对于每个系统调用都有一个系统调用号,在触发中断之前,会将系统调用号放入到一个固定的寄存器,中断处理程序会读取该寄存器的值,然后决定执行哪个系统调用的代码。,比如Linux某网卡接收了一个数据包,此时会触发一个硬中断,由于处理数据包的过程比较耗时,而硬中断资源又非常宝贵,如果占着硬中断函数不返回,会影响到其他硬中断的相应速度,比如点击鼠标、按下键盘等。CPU收到一个中断号n后,会去中断向量表中寻找第n个中断描述符,从中断描述符中找到中断处理程序的地址,然后跳过去执行。......

2022-07-25 22:17:50 3502

原创 Visual Studio 如何查看C++内存分布

msvc 分析内存工具 cl ./main.cpp -d1reportAllClassLayout

2022-07-22 19:02:08 2078

原创 cmake 基本使用过程

cmake 的使用。aux_source_directory( ) 与set( target.cpp)的区别,include_directories(${PROJECT_SOURCE_DIR}/include) 与target_include_directories(sum11 PRIVATE ${PROJECT_SOURCE_DIR}/include)

2022-06-29 22:29:02 788

原创 Git 分支合并情况

git 常见的解决冲突的问题。以及经常说分支之间所做修改是相互看不见,其实是有条件的,自己猜测的。

2022-06-25 15:41:56 1378

转载 虚拟地址空间,虚拟文件系统

虚拟内存空间、虚拟内存、虚拟文件系统

2022-06-17 22:05:31 1454

原创 常用关键字:#define,const,typedef,using,inline

常用关键字:#define,const,typedef,using,inline

2022-06-13 11:29:41 189

原创 详解Linux下TCP连接,未写完

一、服务器端最大TCP连接数二、客户端可以发起的连接数。三、TCP连接时,滑动窗口问题四、TCP三次握手、四次挥手五、TCP与UDP的区别

2022-06-01 23:23:03 1277 1

原创 C++ 堆/栈区别,new的用法,以及与malloc的区别

C++ 堆栈的区别、new/delete malloc/free 的区别与使用,等等

2022-05-31 22:40:48 1208

转载 进程间通信方式(管道、消息队列、内存映射区、共享内存等)

进程间通信 (Inter-Process Communication, 简写为 IPC) 是两个进程之间进行信息交流的一种机制, 不仅仅会发生在同一主机的两个进程之间, 也可以发生在不同主机的两个进程之间,。在一台主机上,每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。Linux内核提供了很多通信方式:管道、消息队列、内存映射区、共享内存、套接字。套接字主要应用于跨网络不同主机间的通信(也可以同一主机)。1、管道与消息队列

2022-05-28 16:21:16 1180

原创 构造函数与析构函数

构造函数与析构函数的执行顺序,初始化时候情况,以及缺省函数的生成。

2022-05-25 15:35:37 251

原创 函数对象与lambda表达式

lambda表达式学习记录

2022-05-23 23:08:51 207

原创 模板类的特例化(具体化)

模板的特例化(部分特例化和完全特例化)

2022-04-26 22:16:44 1254 2

原创 C++ 智能指针

裸指针占用内存小,十分强大。但是在动态内存的使用过程中,容易产生以下问题。忘记释放内存,造成内存泄漏 在尚有指针引用内存的情况下,就释放了它,产生引用非法内存的指针。为了更容易安全地使用动态内存,C++11提供了两种智能指针,来管理动态内存对象。shared_ptr 允许多个指针指向同一个对象;unique_ptr 则独占所指向的对象。还定义了一个名为weak_ptr 的伴随类,是一种弱引用,指向share_ptr 所管理的对象。 都定义在 memory 头文件中。...

2022-04-14 21:42:05 586

原创 C++ any类的设计

不知道作者是怎么想的,就按照any类有的作用来记录吧

2022-04-06 15:11:10 1413

原创 C++知识点

自己看看

2022-04-01 11:06:00 141

原创 继承、虚继承、虚函数内存分布(MSVC下)

msvc 和 gcc 在虚继承内存上处理不太一样,还未研究完。

2022-03-31 17:02:01 1882

原创 嵌套模板,友元函数与模板类

1、友元函数与模板类常见类型模板函数中,实现友元函数,大概有下面几种分类。不需要模板参数的非模板函数 需要模板参数的非模板函数 需要模板参数的模板函数,使用类的模板参数来特化 需要模板参数的模板函数,使用自己的模板参数。(可以有多个模板参数)template<typename T>class A;template<typename T>void func3(const A<T>& obj);template<typename

2022-03-11 22:19:21 1174

原创 new、delete与malloc、free的区别,内在实现。

new、delete与malloc、free的区别;以及new与new[],delete,delete[]的区别。

2022-03-05 20:14:15 1302

原创 C++ 实现 String 类,所考虑的问题

1、string 对象中,因为需要在堆中开辟新的内存,所以用编译器默认的拷贝构造函数和复制构造函数,会造成问题,所以需要重写为深拷贝。2、在拷贝构造函数中,为什么可以访问一个对象的私有属性。 即为什么可以访问str.pstrMyString::MyString(const MyString& str) { int len = shtrlen(str.pstr) + 1; pstr = new char[len]; strcpy(pstr, str);}理由..

2022-03-03 09:34:16 192

原创 MySQL四种隔离级别与并发存在的问题。

1、事务的四个特性事务是一个或多个SQL语句组成的一个不可分割的单元。事务中的一组SQL语句,要么全部成功,要么全部失败。四个特性 ACID原子性 atomic一致性 consistency隔离性 isolation 针对数据库中的并发来说,隔离性越好,并发性越低。根据的是innodb的锁机制持久性 durability redo日志,保证数据的持久性,极端情况 commit后,服务器宕机,数据还没有持久化到磁盘,就需要依靠redo日志了。ACD依靠的是redo、undo日...

2022-01-07 12:02:32 1370

原创 0、VSCode如何远程连接Linux,密钥的使用

VSCode在远程连接Linux时,怎么连接,是否需要密钥,以下进行记录讲解。1、VSCode远程连接步骤1、安装插件打开VSCode后,使用快捷键 Ctrl+Shift+X 或者使用如下图标,在里面搜索 ssh,进行安装2、配置远程服务器安装后,会出现左下角那个按钮,点击会出现右边的选项,在 设置中进行远程服务器的配置。3、配置 config 的文件选择第一行,出现如下信息,按照格式进行填写Host:自定义远程连接的名字Hostname: 服务器IP地址.

2021-12-26 20:14:15 3642

原创 1、muduo网络库 ---- Linux平台下muduo编译安装

muduo库的介绍:一个基于reactor反应堆模型的多线程C++网络库。作者是陈硕大神。muduo库是基于 boost 库开发的,所以需要在 Linux 平台上首先安装 boost 库。1、boost 库安装第一种方法是编译源码安装,可以了解一下,不过比较麻烦:1、准备好boost压缩包,我这里是boost_1_65_0.tar.gz 2、解压 tar -zxvf boost_1_65_0.tar.gz /usr/local 3、进入/usr/local/boost_1_65_0目录.

2021-12-22 18:40:21 3697 2

原创 STL中,函数对象

1、对于回调机制的理解函数B要完成一个功能,但是自己无法完成一定功能,需要借助函数A来完成,也就是回调函数。注意区分普通函数的使用和回调函数的使用。2、基于函数指针的回调函数typedef void (*Callback) (char * str);void ab(char* str) { cout << str << endl; return ;}void ba(Callback call, char* str) { ab(str);

2021-11-29 11:47:56 467

转载 const和指针

const指针和指向常量的指针 - elephantcc - 博客园 (cnblogs.com)

2021-10-06 18:26:09 87

原创 MySQL 中内连接、外连接、交叉连接的区别

1、外连接外连接可以分为左外连接和右外连接。1、左外连接取左边的表的全部,右边的表按条件,符合的显示,不符合则显示null2、右外连接

2021-06-19 21:36:25 578

原创 g++基本用法 objdump 查看输出obj文件

学习C和C++的同学应该都知道,gcc是一款跨平台的C/C++编译器,可以在Linux/Windows平台下使用,具有十分强大的功能,结构也十分灵活,并且可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3和Ada的编译。许多有名的工程和库都是使用gcc进行编译的,如nginx,libevent等。今天我们重点介绍gcc组件中可以用来编译C++程序的g++组件的使用。g++可以在命令行使用,也可以通过配置IDE的编译环境来调用系统配置的g++环境,大家可以根据需要

2021-06-16 20:17:46 5226

转载 隔离级别 和 脏读,不可重复读,幻读

https://zhuanlan.zhihu.com/p/52677680从实例出发,搞懂高并发下的数据库事务隔离级别 (biancheng.net)

2021-06-07 18:44:37 84

原创 MySQL学习----数据库的基本语句操作

SQL 包含以下 4 部分:1)数据定义语言(Data Definition Language,DDL)用来创建或删除数据库以及表等对象:drop:删除数据库和表等对象 create:创建数据库和表等对象 alter:修改数据库和表等对象的结构2)数据操作语言(Data Manipulation Language,DML)用来变更表中的记录:select:查询表中的数据 insert:向表中插入新数据 updata:更新表中的数据 delete:删除表中的数据3)数据查询语言(Da

2021-05-19 20:25:21 149

原创 C++ class 和 struct 构造函数

1)、Class在 C++ 中,有一种特殊的成员函数,它的名字和类名相同,没有返回值,不需要用户显式调用(用户也不能调用),而是在创建对象时自动执行。这种特殊的成员函数就是构造函数(Constructor)。和普通成员函数一样,构造函数是允许重载的。一个类可以有多个重载的构造函数,创建对象时根据传递的实参来判断调用哪一个构造函数。构造函数没有返回值,因为没有变量来接收返回值,即使有也毫无用处,这意味着:不管是声明还是定义,函数名前面都不能出现返回值类型,即使是 void 也不允许;函数体中不能.

2021-05-19 12:24:50 3498

原创 数据结构,单链表及一些题目

数据结构中,一个常用的数据结构--链表。struct LNode { int val; LNode* next;}LNode, *Linklist;首先,了解一下

2021-05-18 21:39:18 315

原创 C++,STL,deque 常用函数介绍

C++ STL,常说的容器可以分为三大部分,序列式容器,关联式容器,容器适配器。这篇文章记录一下序列式容器中的 deque。1、deque 双端队列 直观效果deque 容器以模板类 deque<T>(T 为存储元素的类型)的形式在 <deque> 头文件中,并位于 std 命名空间中。因此,在使用该容器之前,代码中需要包含下面两行代码:#include <deque>using namespace std;//或者 std::deque和 ve

2021-05-15 16:42:06 522 1

原创 C++,STL,vector: size,capacity,resize,reserve,max_size

1、vector 内存增长模式vector是一种特殊的数组,因此其内存必然是连续的。它的连续是建立在不断地对内存的预分配上的,即不断地销毁当前,重新建立内存,效率有点低。vector 容器扩容的过程需要经历以下 3 步:(当 size == capacity 时候,如果要添加元素,就会扩充)完全弃用现有的内存空间,重新申请更大的内存空间; 将旧内存空间中的数据,按原有顺序移动到新的内存空间中; 最后将旧的内存空间释放。这也就解释了,为什么 vector 容器在进行扩容后,与其相关的指针、

2021-05-13 15:45:12 288

原创 C++,STL,queue 队列:FIFO 队列与单调队列的深挖与扩展

1、队列的基础知识和 stack 栈容器适配器不同,queue 容器适配器有 2 个开口,其中一个开口专门用来输入数据,另一个专门用来输出数据。如图所示:queue 容器适配器以模板类 queue<T,Container=deque<T>>(其中 T 为存储元素的类型,Container 表示底层容器的类型)的形式位于<queue>头文件中,并定义在 std 命名空间里。因此,在创建该容器之前,程序中应包含以下 2 行代码:#include <queu

2021-05-13 10:40:31 860

原创 相机标定----世界坐标系,相机坐标系,图像坐标系,像素坐标系的转换

1、坐标系介绍相机模型中,三维世界中的某一点 和 其对应的像素点是通过坐标系的转换得到的。这个过程中会涉及到四个坐标系,即世界坐标系、相机坐标系、图像坐标系、像素坐标系。下面将详细介绍四个坐标系的函已并且记录其的转换过程。图像中所涉及的四个坐标系及其含义:Ow - Xw - Yw - Zw :世界坐标系,单位为 m。Oc - Xc Yc Zc : 相机坐标系,光心为原点,单位为mo - x y : 图像坐标系,光心为原点,单位为mmu v :像素坐标系,原点为图像左上角,单位..

2021-05-12 18:58:55 3991 2

转载 MySQL的安装与配置——详细教程

参考此篇,MySQL免安装版配置教程

2021-04-25 12:59:01 141

原创 C++函数对象与函数指针

在使用STL库中,我们使用 sort 函数,在// sort algorithm example#include <iostream> // std::cout#include <algorithm> // std::sort#include <vector> // std::vectorbool myfunction (int i,int j) { return (i<j); }struct myclass { b

2021-04-13 19:21:57 257

原创 C++ 测量程序执行时间的办法

利用库 <ctime>(time.h) 去计算#include <ctime>//clock_t是定义<ctime>为基本算术类型的别名的类型。int main(){ clock_t start = clock();//自己的程序 clock_t end = clock(); clock_t time = end - start;//此处计算的是执行相关的时期以来经过的时钟滴答数。//如果要换算成秒的话,可以这样计算

2021-04-08 20:09:57 138

原创 c++ unique() distance() 删除数组重复元素

问题引入:给定一个排好序的数组,删除重复元素,使每个元素至多出现一次。下面一个例子,不用返回数组,返回修改后的数组长度。输入:{1,2,3,3,4}输出:4, 为{1,2,3,4}如果是 {1,2,3,4,4,1}我们可以将 先排序,然后在进行此方法。解法1:双指针解法,设置一快一慢的指针,来解决此问题。class Solution {public: int removeDuplicates(vector<int>& nums) { in

2021-04-08 19:49:39 762

可见光和红外光图像配准.zip

这是一个 关于图像配准的算法,配准的是 可见光和红外光两种模态。采用matlab进行编写。

2021-03-03

Tensor flow学习

学习用的资料文件。

2020-10-25

基于nsct的图像融合,

在matlab里面打开,可以直接使用。演示对32*32的图像矩阵进行3级NSCT变换。输出为单元数组,其子带排列顺序见mtr_nsctdec,与Contourlet程序等效。通过修改len_cut的来修改裁剪图像矩阵的大小和窗口位置

2020-09-21

CamVid.zip

练习语义分割,比较有名的数据集 CamVid,可以方便我们去自己的网络的可行性,优或者差等等的性能

2020-06-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除