自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zhang1308299607的博客

日常学习内容

  • 博客(63)
  • 收藏
  • 关注

原创 日期计算器

#ifndef __DATE_H__#define __DATE_H__#define _CRT_SECURE_NO_DEPRECATE 1#include#includeusing namespace std;class Date{public: Date(int year=1900, int month=1, int day=1) { this->_year =

2017-07-03 20:40:57 9678

原创 堆栈在函数运行时的简单解析

写一个简单的求和函数简析堆栈在函数运行时所做的工作。

2017-04-21 16:18:50 1943 1

原创 扫雷小游戏

模仿window里面的经典扫雷小游戏。

2017-04-13 00:00:41 2298

原创 三子棋小游戏

三子棋小游戏

2017-04-05 14:22:00 1212

原创 用符号显示菱形图案

符号显示图形 数组替换 有趣的编程题目

2017-03-28 13:57:09 3834 1

原创 猜数字小游戏

这是一个有趣的猜数字小游戏,很有趣。其中利用了rand()函数的功能。要注意rand函数的放置位置,放置不佳,随机数的刷新可能会导致游戏猜数字有问题。还有就是本次编程是我第一次采用结构化编程,如果有什么欠妥的地方还请指出。

2017-03-25 23:42:42 1318

原创 Git常用操作记录

git账户和邮箱设置: git config --global user.name "Your Name" git config --global user.email "[email protected]" 初始化仓库: git init 生成公钥: ssh-keygen -o # 对应~/.ssh目录下生成文件 id_rsa id_rsa.pub 添加代码到暂存区: git add <file> git commit -m <message&g...

2021-05-10 20:21:08 195

原创 利用python+selenium 自动刷新博客访问次数

目前默认刷新第一页的所有博客文章,可根据css定位规则进行具体修改,例如只访问置顶博客,或者进行连续翻页查询刷新所有博客文章。# -*-coding:GBK -*-from selenium import webdriverfrom time import sleepdef init_chrome(blog_url): browser = webdriver.Chrome() return browserdef get_all_blog_links(blo...

2020-09-09 10:28:30 696

原创 Linux rm命令 回收机制

在linux在rm的使用频率很高,误删,错删的情况自然避免不了,本人就曾经在错误的目录下使用了 rm -rf ./* 命令 ,花了半天才把环境重新搭建好...... 所以建立一种可回退的机制就很有必要。 看了网上的介绍,方式分为两种: 1.利用github上的项目 使用一个新的命令去 trash去删除文件。很遗憾我看了几篇文章的git地址都下载不了。 2.改写rm命令,利用mv命令移动文件or文件夹到指定...

2020-06-03 17:53:30 3734 3

原创 selenium中webdriver.Chrome()的返回对象的session值详解

##selenium入门: 1.打开一个浏览器: ``` from selenium import webdriver import time # 创建Chrome驱动程序的新实例 driver = webdriver.Chrome() print(type(driver)) print(driver) # 转到百度主页 driver.get("https://www.baidu.com")...

2020-04-13 20:08:08 9586 3

原创 matlab将视频拆分成帧图片 帧图片合并成视频

最近做毕设关于图像处理,设计视频图像的拆分和帧图片的合并。在这里做一下记录。具体Matlab代码如下:视频分帧:clc;clear;%% 读取视频video_file='E:\bishe\bishevideo2.avi';video=VideoReader(video_file);frame_number=video.NumberOfFrames;%% 分离图片for i=1:frame_numb...

2018-05-11 14:09:32 9527 4

原创 matlab内置函数VideoReader返回值介绍

VideoReader是matalab中的一个读取视频的函数,它的返回值是一个结构体,这个结构描述了所读取视频的具体信息。下面具体介绍VideoReader类的函数。1。VideoReader - 该函数用于读取视频文件对象。函数调用格式:obj = VideoReader(filename)obj = VideoReader(filename,Name,Value)其中obj为结构体,包括如下成...

2018-04-28 10:07:23 1074 1

原创 帧间差分法、背景减法、光流场法简介

概述 运动目标检测是指当监控场景中有活动目标时,采用图像分割的方法从背景图像中提取出目标的运动区域。运动目标检测技术是智能视频分析的基础,因为目标跟踪、行为理解等视频分析算法都是针对目标区域的像素点进行的,目标检测的结果直接决定着智能视觉监控系统的整体性能。 运动目标检测的方法有很多种。根据背景是否复杂、摄像机是否运动等环境的不同,算法之间也有很大的差别。其中最常用的三类方法是:帧间差...

2018-04-25 16:31:07 33108 7

原创 模板 vector list

vector#define _CRT_SECURE_NO_DEPRECATE 1#include<iostream>#include<assert.h>using namespace std;template<class T>class Vector{public: Vector() :_data(new T[3]) ,_size(0)

2017-08-03 10:44:39 331

原创 简单的TCP server编写

首先认识几个必要的函数:1.socket (建立socket文件) 参数:第一个参数设置ip(V4 V6) 第二个参数数据类型(tcp是数据流) 第三个参数协议(默认为0)返回值:成功返回 文件描述符 失败返回-1 2.bind (将socket文件和网络绑定起来) int bind(int socketfd,struct sockaddr *serveraddr, int addrl

2017-07-28 13:28:19 1786

原创 c++多态下的继承

什么是多态?给定一个函数接口,实现多种不同的功能。c++的多态分为两种静态多态:在函数的编译器就决定了调用哪种调用。(静态绑定) 动态多态:在函数运行期间决定调用哪种方法。实现多态的两个条件:1基类中必须要有虚函数,派生类中必须要重写虚函数。 2用基类的指针或者引用去调用虚函数。#include<iostream> using namespace std; class A

2017-07-27 14:15:52 611

原创 c++如何防止一个类被其他类继承

如何在防止一个类被其他的类继承呢?如果是仅仅为了达到这个目的可以直接把这个类的构造函数设置成私有的,这样就杜绝了其他类的继承。也相当于毁掉了这个类(无法再创造出自己的对象)。那么怎么样既要保证这个类的完整性,又防止其他类的继承呢?这就要借助友元来实现,因为友元是不可以被继承的。如果一个类的构造函数要借助它的友元类,那么继承了这个类的类就无法构造自己的对象。从而杜绝了被继承。#include <i

2017-07-25 23:44:56 3098

原创 TCP/UDP端口号调研 tcp的6个标志位

端口号分类:知名端口(1)公认端口(Well-Known Ports)知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。(2) 注册端口(Registered P

2017-07-24 16:04:57 1799

原创 NAT技术、 代理服务器 路由算法

NAT英文全称是“Network Address Translation”,中文意思是“网络地址转换”, 简单的说,NAT就是在局域网内部网络中使用内部地址,而当内部节点要与外部网络进行通讯时,就在网关处,将内部地址替换成公用地址,从而在外部公网(internet)上正常使用,NAT可以使多台计算机共享Internet连接,这一功能很好地解决了公共IP地址紧缺的问题。 借助于NAT,

2017-07-24 13:24:56 589

原创 c++继承

继承:继承是实现复用的重要手段,共享公有的东西,然后实现各自不同的东西。画个图说明下我理解的继承:我们把上图的类A叫做基类(父类),把类B叫做派生类(子类)。从图中可以看出,类B在继承了类A后拥有了类A的资源。继承的关系分为三类:public: 共有继承Protected:保护继承private:私有继承这三种关系和类中的三种成员访问限定符一一对应。每一种继

2017-07-24 13:15:09 295

原创 c++顺序表与双向链表实现

之前实现过c语言版本的顺序表和单向链表,现在实现c++版本的顺序表和双向链表:再来看一下顺序表,单链表和双向链表的区别:顺序表的c++实现:#define _CRT_SECURE_NO_DEPRECATE 1#include#include#includeusing namespace std;typedef int Datatype;class SeqList

2017-07-22 10:14:23 437

原创 写时拷贝

什么是写时拷贝?      首先先说浅拷贝,就是拷贝的时候让当前的指针指向一块已存在的区域,和其他指针共享同一块地址空间。简单的浅拷贝所带来的问题是当程序结束的时候,对象d1和d2都会去调用析构函数清零这个快空间,而一块空间析构两次可能就会导致程序崩溃。(深浅拷贝参考http://blog.csdn.net/zhang1308299607/article/details/74933134)

2017-07-13 18:04:49 363

原创 关于函数传参,传引用 以及编译器的优化问题

在c语言中给函数传参时有两种方式,一种是传值,一种是传址。c++中的传参也两种,一种是传值,一种是传引用。从概念上可以认为是一一对应的。传值: 我们都知道形参是实参的一份临时拷贝,也就是说,在值传递的时候是现在函数的栈上开辟出来一块空间然后把实                  参复制一份,然后接下来使用的就是这份复制得来的形参,这也从根本上说明了改变形参不会影响实参。传引用:直接去使

2017-07-12 18:24:43 1016

原创 模拟实现string 增删查改 比较大小

要求:模拟实现c++库函数里面string的部分功能,实现增删查改,比较预算符的重载#ifndef __MySTRING_H__#define __MYSTRING_H__#define _CRT_SECURE_NO_DEPRECATE 1#include#include#include#includeusing namespace std;class String{

2017-07-12 17:55:36 373 1

原创 c++string的深拷贝

在c++中当我们想要去拷贝一个字符串的时候就会存在两种方式:1 浅拷贝方式                 2深拷贝方式浅拷贝:所谓的浅拷贝就是让当前的指针指向一块已存在的区域,和其他指针共享同一块地址空间浅拷贝所带来的问题是当程序结束的时候,对象d1和d2都会去调用析构函数清零这个快空间,而一块空间析构两次可能就会导致程序崩溃。(这里暂不考虑写时拷贝)深拷

2017-07-10 18:59:59 10270 3

原创 奇偶校验 累加和校验 CRC校验

奇偶校验:所谓通讯过程的校验是指在通讯数据后加上一些附加信息,通过这些附加信息来判断接收到的数据是否和发送出的数据相同。比如说RS232串行通讯可以设置奇偶校验位,所谓奇偶校验就是在发送的每一个字节后都加上一位,使得每个字节中1的个数为奇数个或偶数个。比如我们要发送的字节是0x1a,二进制表示为0001 1010。采用奇校验,则在数据后补上个0,数据变为00

2017-07-08 23:49:12 21478

原创 动态内存管理

c语言动态内存管理:     开辟空间:malloc   calloc  realloc       释放空间:free(ptr);void test(){ int* ptr1 = (int*)malloc(sizeof(int)); //开辟四个字节的空间 int* ptr2 = (int*)calloc(4,sizeof(int)); /

2017-07-04 18:09:59 259

原创 c++复数类

写一个简单的类完成默认函数和简单的运算符重载1.完成四个默认成员函数 2.比较运算符 3.前置后置++和+/+=的实现 #ifndef __COMPLEX_H__#define __COMPLEX_H__#define _CRT_SECURE_NO_DEPRECATE 1#include#includeusing namespace std;class Co

2017-07-02 16:34:59 437

原创 类 和 对象 默认成员函数

类:class(数据+函数)   类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的操作封装在一起的集合体。这有点像C语言中的结构,唯一不同的就是结构没有定义所说的“数据相关的操作”,“数据相关的操作”就是我们平常经常看到的“方法”,因此,类具有更高的抽象性,类中的数据具有隐藏性,类还具有封装性。         1. public成员可从类外部直接访问,pri

2017-06-30 09:02:25 399

原创 信号 核心转储 gdb调试

信号:         使用kill -l  查看linux中的信号。        可以从上图看出linux中一共有62个信号(没有32,33)。1-31为普通信号,34-64为实时信号。我们主要关注前31个信号。每一个信号都有其对应的意义。1) SIGHUP 本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个

2017-06-24 00:05:21 979

原创 c++基础

1.命名空间 2.C++基本的输入输出流3.重载(C++为什么支持重载?) 4.C++缺省参数 5.指针和引用(概念、使用方法、做参数、做返回值的作用,指针和引用的区别) 1.命名空间 namespace         相当于一个更加灵活的文件域(全局 域),可以用花括号把文件的一部分括起来,并以关键字namespace开头给它 起一

2017-06-18 16:01:23 279

原创 链表面试题 进阶 二

一:1寻找两条链表里面的相同元素       2寻找两条连表里面不同的元素  (都不考虑带环问题)二:复杂链表的复制。一个链表的每个节点,有一个指向next指针指向下一个节点,还有一个random指针指向这个链表中的一个随机节点或者NULL,现在要求实现复制这个链表,返回复制后的新链表。 //ps: 复杂链表的结构 struct ComplexNode { int _d

2017-06-16 20:29:40 284

原创 链表面试题 进阶

1.判断单链表是否带环?若带环,求环的长度?求环的入口点?2.判断两个链表是否相交,若相交,求交点。(假设链表不带环)3.判断两个链表是否相交,若相交,求交点。(假设链表可能带环)【升级版】

2017-06-14 09:21:23 321

原创 链表 环形 生产者消费者模型

生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案例。该问题描述了两个共享固定大小缓冲区的线程——即所谓的“生产者”和“消费者”——在实际运行时会发生的问题。生产者的主要作用是生成一定量的数据放到缓冲区中,然后重复此过程。与此同时,消费者也在缓冲区消耗这些数据。该问题的关

2017-06-12 16:05:58 403

原创 单链表基础面试题

1.比较顺序表和链表的优缺点,说说它们分别在什么场景下使用? 2.从尾到头打印单链表 3.删除一个无头单链表的非尾节点 4.在无头单链表的一个节点前插入一个节点 5.单链表实现约瑟夫环 6.逆置/反转单链表 7.单链表排序(冒泡排序&快速排序) 8.合并两个有序链表,合并后依然有序 9.查找单链表的中间节点,要求只能遍历一次链表 10.查找单链表的倒数第k个

2017-06-11 22:42:54 327

原创 单项链表的实现

mylist.h#define _CRT_SECURE_NO_DEPRECATE 1#pragma once#include#include#include#includetypedef int DataType; typedef struct ListNode { DataType data; struct ListNode* next; }ListNode;

2017-06-09 15:55:09 266

原创 关于管道

管道是进程间通信的方式之一管道的分类:           1:匿名管道 :可用于血缘进程间通信 (比如 父子进程)。           2:命名管道:可用于任意两个进程间通信。匿名管道通信:非亲缘进程间利用管道通信:写端:读端写端读端可以通过运行结果看出 两个无亲缘关系的进程通过管道实现了通信。管道通信中的

2017-06-07 15:17:39 317

原创 关于线程

一:什么是线程?    线程:线程最直接的理解就是“轻量级进程”,它是一个基本的CPU执行单元,也是程序执行流的最小单元,由线程ID、程序计数器、寄存器集合和堆栈组成。线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一进程中的多个线

2017-06-06 08:10:16 860

原创 关于linux中的死锁

一:什么事死锁?     进程(线程)在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于“死锁”状态或系统产生了死锁,这些永远在互相等待的进程(线程)称为死锁进程(线程)。由于资源占用时互斥的,当某个进程提出申请资源后,使得有关进程(线程)在无外力协助下,永远分配不到必备的资源而无法运行,这就产生了一种特殊现象死锁。  举例两种情形:1

2017-06-05 00:12:30 961

原创 指针 指针数组 指针数组的指针 数组指针 数组指针的数组 函数指针 指向函数指针数组的指针

指针 指针数组 指针数组的指针 数组指针 数组指针的数组 函数指针 函数指针数组 指向函数指针数组的指针

2017-05-24 22:30:26 4250 6

空空如也

空空如也

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

TA关注的人

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