自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(123)
  • 资源 (1)
  • 问答 (7)
  • 收藏
  • 关注

原创 指针数组与数组指针

指针数组和数组指针

2022-12-09 15:25:26 165 1

原创 内联函数的几种形式

类定义的内联函数分为以下3种: 1.隐式内联 class Person{public: Person(const string &name) { Name = name; } void printName()//printName 定义在类里面是隐式内联函数 { cout << Name << endl; }private: string Name;}; 2)在类里面显...

2021-02-02 14:51:44 865

原创 C++的四种类型转换运算符:static_cast,dynamic_cast,const_cast,reinterpret_cast

集中转换

2021-02-01 13:52:46 281

原创 placement new

//new关键字创建对象的时候,对于内置类型,加上()会初始化,不加()不会初始化//对于自定义类型,都会调用默认构造函数,加不加括号没有区别

2021-01-30 20:27:06 212

原创 可变参数模板:template <class... Args>

2021-01-30 19:53:36 5330

原创 解决linux连接海康摄像头后无法访问摄像头ip的问题

接着上篇的问题在win下试验成功后,准备去Linux下测试一番,使用ifocnfig修改ip地址与摄像头在同一个网段后发现又无法访问了,折腾了好久,终于在一个回答中找到问题的关键。环境:Ubuntu20.04, win10主机,桥接模式这里的桥接模式默认桥接的是主机的物理网卡,如图所示,在Bhuwifi下的那个网卡,但是跟上篇文章同样的问题出现了,摄像头并不借助路由器组网,因此桥接到这个网卡上时主机跟虚拟机时无法ping通的(如果能ping通是因为连接了外网,通过路由器ping通,断网后就无法pin

2020-12-25 10:37:59 3250 1

原创 海康摄像头使用网线连接电脑后无法访问摄像头ip

起初通过海康官方的工具修改ip地址与主机ip在同一网段后,发现依旧无法访问摄像头的ip,后查询资料发现使用网线连接后, 应该将ip修改成与网线的ip在同一个网段,而不是外网的,如图:BhuWiFi是连接的WiFi,第二个是海康摄像头的网线上图中,最下面的是连接的外网,对应的是BhuWIFI,以太网适配器 以太网对应的是海康摄像头的网线。我初始的操作是将海康摄像头的ip地址改成跟WiFi在一个网段,发现怎么也无法访问摄像头的ip。查阅资料后得知要将摄像头的ip地址改成跟网线的ip在同一个网段就可以了。原

2020-12-25 10:22:14 18656 4

原创 虚继承

什么叫做虚继承:重复基类,派生类间接继承同一基类使得间接基类(Person)在派生类中有多份拷贝,引发二义性。错误示范:#include<iostream>using namespace std;class A { public: void vf() { cout<<"I come from class A"<<endl; }};class B: public A{};class C: public A{};class D: public .

2020-12-18 14:16:40 96

原创 派生类和基类的关系

在C++中,我们允许将派生类对象赋给基类对象。(不允许将基类对象赋给派生类对象)只会将基类对象成员赋值,a1=b1;(A是基类,B是派生类)用基类指针指向派生类对象。(不允许用派生类指针指向基类对象)基类指针只能操作基类中的成员, pA=&b1; (A是基类,B是派生类)基类引用作为派生类的别名。(不允许派生类引用作为基类的别名)基类引用只能访问基类成员,A &a=b1;(A是基类,B是派生类)原因很简单,派生类一般含有基类没有的成员,将派生类赋给基类成员我们才能保证基类中每个

2020-12-18 13:47:27 536

原创 win10使用共享文件夹传输数据提示输入网络凭据问题

在打开的【Windows设置】界面选择【网络和internet】选项(如果你嫌麻烦可以直接右击任务栏的网络图标,然后选择【打开“网络和Internet”设置】)在打开的设置界面右侧下拉,找到并点击【网络和共享中心】选项在打开的【网络和共享中心】页面左侧点击【更改高级共享设置】选项在打开的【高级共享设置】界面,下拉到最底部,然后点击【所有网络】选项在展开【所有网络】下拉菜单,下拉到最底部,将【密码保护的共享】组更改为【关闭密码保护共享】,然后点击【保存修改】就行了...

2020-12-15 15:43:09 6726 1

原创 ubuntu 下live555库的安装

sudo apt-get install build-essentialsudo apt-get remove liblivemedia-devcdwget http://www.live555.com/liveMedia/public/live555-latest.tar.gztar xvf live555-latest.tar.gzcd live/genMakefiles linuxmakesudo cp -r $HOME/live /usr/libmake clean

2020-12-01 10:05:54 822

原创 移远RM500Q模块直连ubuntu实现拨号上网

1.环境配置与内核下载uname -r:查看当前内核版本sudo apt search linux-source:查看当前可用的内核sudo apt install linux-source-:下载跟当前内核版本相同的内核,命令的后面加上内核号例如,我的内核版本是linux-source-4.15.0,打开 /usr/src/linux-source-4.15.0 目录 解压内核 tar -jxvf linux-source-4.15.0.tar.bz2,最终 内核文件的位置为 /u

2020-11-28 15:27:47 8696 2

原创 VIM配置文件

" All system-wide defaults are set in $VIMRUNTIME/debian.vim and sourced by" the call to :runtime you can find below. If you wish to change any of those" settings, you should do it in this file (/etc/vim/vimrc), since debian.vim" will be overwritten ev

2020-11-04 21:51:23 209

原创 linux驱动面试题

  linux驱动面试题(面试题整理,含答案) 版权声明:本文为博主原创文章,未经博主允许不得转载。  转载请标明原址:https://blog.csdn.net/kai_zone/article/details/82021233       前言: 这篇文章主要是对linux驱动面试题一个整理跟总结,参考了很多网上的资料,基本涵盖linux驱动相关面试内容...

2020-10-03 09:44:06 680

原创 SPI,UART,IIC三大总线对比说明

一、SPI:高速,全双工,同步串行总线串行指的是数据是一位一位发送的,同步指的是要根据主机的时钟信号来发送SPI有四根线,分别为SCLK(时钟信号),MOSI(主设备输出,从设备输入),MISO(主设备输入,从设备输出),CS(片选信号)SPI有四种工作模式:Mode0:CPOL=0,CPHA=0Mode1:CPOL=0,CPHA=1Mode2:CPOL=1,CPHA=0Mode3:CPOL=1,CPHA=1CPOL=0,表示当SCLK=0时处于空闲态,所以有效状态就是SCLK处于高电平时

2020-09-18 21:31:57 6520

原创 TCP粘包和拆包问题

但此时

2020-09-16 09:02:55 149

原创 归并排序

采用分治的思想void merge(int arr[], int l, int m, int r) { //合并的时候有四个元素,从左到右下标依次为l,m,未定义,r //将左边一组的起始位置定义为nl int nl = l; //将右边一组的起始位置定义为nr int nr = m+1; //申请一个新的数组存放排序后的元素,长度与传进来的数组长度相等 int[] tmp = new int[arr.length]; int i = 0; /.

2020-09-05 10:10:23 83

原创 IP地址的分类

A类地址中前八位是网络部分,后24位是主机部分子网掩码揭示了哪个是网络部分,哪个是主机部分,比如192.168.80.1,子网掩码是255.255.255.0,这就是后面前三个八位是网络部分,最后一个八位是主机部分111.222.111.222/24这种形式中斜杠后面的数字代表子网掩码的位数,所以111.222.111.222/24所表示的意思就是:IP地址:111.222.111.222子网掩码:255.255.255.0A类:1.0.0.0~126.255.255.255,默...

2020-09-04 09:04:18 248

原创 TCP/IP协议相关

0、TCP/IP四层协议应用层,网络层,传输层,数据链路层1、数据链路层:数据链路层常用的两个协议是ARP协议和RARP协议,实现IP地址和MAC地址的相互转化2、网络层网络层实现数据包的转发和选路,重要的协议是IP协议和ICMP协议IP协议根据数据包的目的IP地址来决定如何投递它。如果数据包不能直接发送给目标主机,那么IP协议就为它寻找一个合适的下一跳(next hop)路由器,并将数据包交付给该路由器来转发ICMP协议主要用于检测网络连接,分为两大类差错报文和查询报文,差错报文用来回应网

2020-08-31 15:07:19 93

原创 C++常用设计模式详解

1. 面向对象的设计原则:高内聚:设计封装模块的时候功能单一,针对性强低耦合:每个模块之间的交互量少2. 深入理解面向对象封装:隐藏颞部实现继承:复用先有代码多态:改写对象行为3. 单例模式:涉及到一个单一的类,该类负责创建自己的对象,一个类只有一个对象。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。单例模式有两种常见的方式,饿汉模式和懒汉模式:(1)、饿汉模式就是在使用之前先实例化要使用的单例对象(2)、懒汉模式就是在使用的时候再实例化要使用的单例对象

2020-08-30 15:40:05 749

原创 select,poll,epoll辨析

https://www.cnblogs.com/aspirant/p/9166944.htmlselect,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用户空间。1.s

2020-08-30 08:19:23 112

原创 在循环中使用erase报错的情况

之前想写个程序,利用iterator遍历list,然后用if语句删除特定值像下面这样:for(list<int>::iterator iter=l...

2020-08-28 14:08:03 524

原创 红黑树原理

1.二叉搜索树的定义若左子树不为空,则左子树上所有节点的值都小于根节点的值若右子树不为空,则右子树上所有节点的值都大于根节点的值且左右子树都为二叉搜索树2.二叉搜索树的操作查找:必须从根节点开始查找如果值比根节点大则查找右子树,否则左子树,直到找到节点插入:与查找类似逐个节点对比,直到找到满足条件的NULL,就插入到相应位置查找最大和最小值一直往左遍历,直到NULL,那就是最小值,最大值就是往右遍历。中序遍历也就是投影,最左边的值最小,最右边的最大3.红黑树二叉搜

2020-08-25 11:44:51 374 1

原创 平衡二叉树的实现原理

1.概念平衡二叉树建立在二叉排序树的基础上,目的是使二叉排序树的平均查找长度更小,即让各结点的深度尽可能小,因此,树中每个结点的两棵子树的深度不要偏差太大。平衡二叉树的递归定义:平衡二叉树是一棵二叉树,其可以为空,或满足如下2个性质:①左右子树深度之差的绝对值不大于1。②左右子树都是平衡二叉树。平衡因子的概念:结点的平衡因子 = 结点的左子树深度 — 结点的右子树深度。最低不平衡结点的概念:用A表示最低不...

2020-08-24 08:31:01 453

原创 C语言中int类型和char类型相互转换的问题

char类型转化成int类型a[i] - '0'int类型转化成char类型a[i] + '0'

2020-08-22 21:38:32 2485

原创 C语言中函数传递参数的三种形式

值传递,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值引用传递,实际是通过指针来实现的,能达到使用的效果如传址,可是使用方式如传值。地址传递,就是传变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,也就是能改变函数外的变量的值。只有这三种形式,传递数组也是属于地址传递...

2020-08-22 17:43:59 1185

原创 二叉树非递归遍历的统一写法(前序,中序,后续,层序)

前,中,后序遍历这种写法是相反的,比如说前序,在代码里相应部分的顺序是右中左前中后都可以用这个模板,改变一下顺序就可以了class Solution {public: vector<int> preorderTraversal(TreeNode* root) { vector<int> res; stack<TreeNode*> s; if(root!=nullptr) s.push(root); .

2020-08-20 14:02:46 159

原创 C++中使用map容器实现哈希表的简单功能

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。使用哈希表求解,记录每个元素出现的次数,最后统计,如果大于数组长的一半就输出class Solution {public: int MoreThanHalfNum_Solution(vector<int> numbers) { map<int,int&gt

2020-08-18 13:32:08 643

原创 C++11中遍历的新方法

1.使用智能指针#include "stdafx.h"#include<iostream>#include<vector> int main(){ std::vector<int> arr; arr.push_back(1); arr.push_back(2); for (auto it = arr.begin(); it != arr.end(); it++) { std::cout <&lt

2020-08-18 12:47:28 447

原创 斐波那契数列通用解法(跳台阶等)

此类题目一般满足f(n) = f(n-1)+f(n-2)的规律,比如输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)1.递归解决int Fibonacci(int n) { if (n==0 || n==1) return n; return Fibonacci(n-1) + Fibonacci(n-2);}2.循环解决:int Fibonacci(int n) { if(n == 0) return 0; if(n ==

2020-08-18 11:26:06 125

原创 指向字符串常量的指针

char p[] = “string”char *q = p;这样子是定义了一个字符数组和一个指向该字符数组的指针,可以通过指针对该该字符数组进行操作char *p = “string”这种情况下,指针指向的是一个字符串常量,不可以通过这个指针对该字符串常量进行修改操作...

2020-08-17 20:18:43 1072

原创 判断TCP客户端是否断开连接的方法

判断recv函数的返回值,小于等于0代表有问题,此时判断 errno是否等于 EINTR,如果errno == EINTR 则说明recv函数是由于程序接收到信号后返回的,socket连接还是正常的,不应close掉socket连接。如果使用select函数,则先判断select()函数是否返回0使用getsockopt函数判断getsockopt(sock, IPPROTO_TCP, TCP_INFO, &info, (socklen_t *)&len); if((info.tc.

2020-08-17 18:32:20 2904

原创 linux的文件搜索和链接库

1.静态链接和动态链接什么是静态链接呢?即在链接阶段,将库的代码与汇编生成的目标文件.o合并生成可执行文件。优点是:方便程序移植,因为可执行程序与库函数再无关系,放在如何环境当中都可以执行。缺点是:文件太大,而且每次库文件升级的话,都要重新编译源文件,很不方便。什么是动态链接呢?就是不把链接内容与目标文件合并,而是在执行的过程中去寻找。2.静态链接库和动态链接库静态链接库在Linux中后缀为.a,windows中后缀为.lib动态链接库在Linux中后缀为.so,windows中后缀为.

2020-08-17 11:55:42 85

原创 解决VS读取中文文件出现乱码的情况

解决方法:将文件另存为,编码方式选择ANSI,并覆盖原来的文件

2020-08-12 10:59:41 1163 2

原创 TCP/UDP的socket编程的几种标准模式

1、TCP socket编程的标准模式TCP编程中建议使用recv函数和send函数,并且客户端不使用bind函数2、为什么不建议对TCP客户端进行bind?首先要明确,客户端不是不能bind,他也可以bind,但是我们却不建议对客户端bind。回想一下,服务器为什么要bind呢?因为服务器总是被动方,需要在一个众所周知的端口上等待连接请求,而且作为服务器它的端口号应该是固定的。服务器bind一个端口就表示会在这个端口提供一些特殊的服务。而客户端它是主动发起方,我们并不关心是客户端的哪个端口和服

2020-08-09 15:42:34 239

原创 条件变量和互斥锁的配合使用

参数

2020-08-08 11:48:44 810

原创 线程池

1.线程池的基本原理在传统服务器结构中, 每当有一个新的用户进入, 服务器就开启一个新的线程用户处理这 个用户的数据包。这个线程只服务于这个用户 , 当 用户与服务器端关闭连接以后,服务器端销毁这个线程。然而频繁地开辟与销毁线程极大地占用了系统的资源。 线程池的基本思想就是在程序 开始时就在内存中开辟一些线程, 线程的数目是 固定的,他们独自形成一个类,屏蔽了对外的操作, 而服务器只需要将数据包交给线程池就可以了。当有新的客户请求到达时 , 从“池子”中选择一个空闲的线程为新的客户请求服务 ,服务完毕后

2020-08-08 11:48:07 117

原创 **Headnode** 是 0xCDCDCDCD的解决方案

在写一个单链表程序的时候VS报错Headnode 是 0xCDCDCDCD其实是因为链表的最后一个节点没有指向NULL,于是在创建头结点的时候顺便将Headnode->next初始化为NULL,问题解决

2020-08-07 15:45:15 595

原创 死锁的产生和避免

2020-08-06 22:11:17 82

原创 进程间通信方式(管道,IPC,信号)

进程间通信1.无名管道2.有名管道3.两种管道通信的对比4.信号机制5.IPC通信6.共享内存7.消息队列8.信号灯集线程由于共享资源,可以直接定义全局变量实现通信,但是进程就不行了,接下来主要介绍几种进程间的通信方式。1.无名管道只能用于具有亲缘关系的进程之间的通信,比如说父子进程,兄弟进程。实际上,文件描述符是一个索引值,系统为每一个进程都维护了一个文件描述符表。也就是说,在不同的进程中打开同一个文件返回的fd未必相等,因此进程间不能通过传递fd的方式来打开同一个文件。而子进程会继承父进程打开的

2020-08-06 21:57:38 254

Calculator.zip

QT下利用C++实现一个简单的计算机功能,包含加减乘除,小数点,清空,退位等功能,利用图形界面展示。

2020-05-22

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

TA关注的人

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