自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(106)
  • 收藏
  • 关注

原创 Qt编程详解--使用QStackedWidget实现同一窗口下多页面切换

一、效果展示通过菜单栏的功能模块可以切换页面(也可以使用按钮控制切换)二、页面设计三、代码实现mainwindow.h#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui {class MainWindow;}class MainWindow...

2020-01-21 14:36:59 3448

原创 Git常见错误(持续更新。。。)

1、error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054在clone时遇到这个问题,可以先执行:git config http.sslVerify "false",再clone2、fatal: unable to access 'https://github.com/...': OpenSSL...

2019-11-11 14:38:53 369

转载 OpenCV (1.1.2)Mat类

Mat类关键的属性和定义如下:class CV_EXPORTS Mat{public:/ /一系列函数.../*flag 参数中包含序号关于矩阵的信息,如: -Mat 的标识 -数据是否连续 -深度 -通道数目 */int flags;int dims ;//!数组的维数,取值大于等于2int rows,cols;//!行和列的数量...

2019-11-05 15:08:45 404

原创 OpenCV (1.1.1)opencv.hpp

一、打开opencv.hpp,截取一段#include "opencv2/core.hpp"// Then the optional modules are checked#ifdef HAVE_OPENCV_CALIB3D#include "opencv2/calib3d.hpp"#endif#ifdef HAVE_OPENCV_FEATURES2D#include "ope...

2019-11-05 11:37:59 807

原创 OpenCV (0)简介

OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,它提供了很多函数,这些函数非常高效地实现了计算机视觉算法(最基本的滤波到高级的物体检测皆有涵盖)。OpenCV 使用 C/C++ 开发,同时也提供了 Python、Java、MATLAB 等其他语言的接口。OpenCV 是跨平台的,可以在Windows、Linux、Mac OS、...

2019-11-05 10:53:54 410 1

原创 OpenCV (1)图片显示

编译OpenCV的源码,并配置过程可以参考,但版本是以前的:https://blog.csdn.net/poem_qianmo/article/details/19809337也可以自己找最新版本的编译过程,OpenCV现在最新版本 4.1.2https://opencv.org完成后,测试图片显示#include <opencv2/opencv.hpp>us...

2019-11-04 21:15:33 140

转载 解决No module named numpy问题

一般安装numpy的时候,1,更新pip需要用最新版的pip来安装python -m pip install --upgrade pip然后pip install numpy但是在命令行窗口运行:pythonimport numpy会报错No module named numpy问题接着pip list 发现确实有安装成功了,好奇怪,强行跑代码,报另外的错误:时...

2019-10-26 17:25:45 3693

转载 一台计算机如何安装2个版本的python,互不影响呢

第一步 下载适合自己电脑的安装包 32还是64 按照自己的电脑来:python2.7.13和python3.6 先安装哪一个版本无所谓。第二步安装完成后,检查环境变量是否添加到path中,3.6版本在安装的时候有一个选项是自动添加到环境变量,但是 不管哪一个版本,最好还是要去path里检查一下是否添加上。以我的为例 我需要添加4个路径到path里面去2.7版本的是...

2019-10-26 17:12:21 3032 1

原创 字符串分隔

题目描述:•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(输入2次,每个字符串长度小于100)输出描述:输出到长度为8的新字符串数组示例1输入abc123456789输出abc000001234567890000000方法一#inc...

2019-10-24 22:51:26 131

原创 C++ substr

basic_string::substrbasic_string substr(size_type_Off = 0,size_type _Count = npos) const;substr是C++语言函数主要功能:复制子字符串,要求从指定位置开始,并具有指定的长度。如果没有指定长度_Count或_Count+_Off超出了源字符串的长度,则子字符串将延续到源字符串的结尾。参...

2019-10-18 22:23:20 187

转载 C++ getline函数用法详解

虽然可以使用 cin 和 >> 运算符来输入字符串,但它可能会导致一些需要注意的问题。当 cin 读取数据时,它会传递并忽略任何前导白色空格字符(空格、制表符或换行符)。一旦它接触到第一个非空格字符即开始阅读,当它读取到下一个空白字符时,它将停止读取。以下面的语句为例:cin >> namel;可以输入 "Mark" 或 "Twain",但不能输入 "Mark T...

2019-10-18 11:40:13 419

原创 UDP

1、ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,const struct sockaddr *dest_addr, socklen_t addrlen);功能:UDP协议专用的数据发送函数sockfd:套接字描述符buf:待发送的缓冲区首地址len:待发送的数据字节数flags:0阻塞,1不阻塞...

2019-10-17 20:35:43 119

转载 linux下高并发服务器实现

在做网络服务的时候tcp并发服务端程序的编写必不可少。tcp并发通常有几种固定的设计模式套路,他们各有优点,也各有应用之处。下面就简单的讨论下这几种模式的差异:单进程,单线程在accept之后,就开始在这一个连接连接上的数据收接收,收到之后处理,发送,不再接收新的连接,除非这个连接的处理结束。优点: 简单。缺点: 因为只为一个客户端服务,所以不存在并发的可能。应...

2019-10-17 16:44:29 206

转载 TCP之多线程

多线程服务器是对多进程服务器的改进,由于多进程服务器在创建进程时要消耗较大的系统资源,所以用线程来取代进程,这样服务处理程序可以较快的创建。据统计,创建线程比创建进程要快 10100 倍,所以又把线程称为“轻量级”进程。线程与进程不同的是:一个进程内的所有线程共享相同的全局内存、全局变量等信息,这种机制又带来了同步问题。我们在使用多线程并发服务器时,直接使用以上框架,我们仅仅修改clien...

2019-10-17 16:35:51 2602 1

转载 C++ 值传递,地址传递和引用传递

首先,看以下三段代码。1.void swap1(int x, int y) { int tmp=x; x=y; y=tmp; print(“x=%d, y=%d\n”, x, y);}void main(){ int a=2,b=7; swap1(a,b) ; printf(“a=%d, b=%d\n”, a, b);}输出结果是什么?...

2019-10-17 15:31:35 1295 1

原创 TCP之多进程

pid_t fork(void);功能:创建一个新进程返回值:一次调用两次返回,失败返回-1//client.c#include <stdio.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h...

2019-10-17 11:59:19 142

原创 TCP

1、int listen(int sockfd, int backlog);功能:设置等待连接的最大数量sockfd:被监听的socket描述符backlog:等待连接的最大数量(排队的数量)成功返回0 失败-12、int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);功能:等待sockfd...

2019-10-15 20:35:22 107

原创 本地通信

1、创建socket#include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol);功能:创建socket描述符,可以把socket当作文件来看待,发送数据就是写文件,接收数据就是读文件domain:地址文件...

2019-10-15 15:54:54 649

转载 UDP主要丢包原因及具体问题分析

一、主要丢包原因1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续recv。2、发送的包巨大丢包:虽然send方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过50K的一个udp包,不切割直接通过sen...

2019-10-15 14:44:05 1144

原创 C++ 内存泄露的原因及检测

一、原因1. 在类的构造函数和析构函数中没有匹配的调用new和delete函数 两种情况下会出现这种内存泄露: 一是在堆里创建了对象占用了内存,但是没有显示地释放对象占用的内存; 二是在类的构造函数中动态的分配了内存,但是在析构函数中没有释放内存或者没有正确的释放内存2.没有正确地清除嵌套的对象指针3.在释放对象数组时在delete中没有使用方括号...

2019-10-15 10:55:15 567

转载 C++ 浅拷贝和深拷贝

对一个已知对象进行拷贝,编译系统会自动调用一种构造函数——拷贝构造函数,如果用户未定义拷贝构造函数,则会调用默认拷贝构造函数。//student.h#ifndef STUDENT_H#define STUDENT_Hclass Student{ private: int num; char *name;...

2019-10-13 23:48:44 112

转载 JSON与XML的区别比较以及XML的读写

1.定义介绍(1).XML定义扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML使用DTD(document type definition)文档类型定义来组织数据;格式统一,跨平台和语言,早已成为业界公认的标准。XML是标准通...

2019-10-13 16:23:46 408

转载 Linux深度解析 read 和 fread 的区别 (系统调用与库函数的区别)

read(由已打开的文件读取数据)包含头文件:#includessize_t read(int fd,void * buf ,size_t count);函数说明  read()会把参数fd 所指的文件传送count个字节到buf指针所指的内存中。若参数count为0,则read()不会有作用并返回0。返回值为实际读取到的字节数,如果返回0,表示已到达文件尾或是无可读取的数据,此外文件...

2019-09-27 22:14:31 1063

转载 C++ 指针作为函数参数传递的问题

一、引两个问题第一个问题是这样的:写一个函数,交换两个参数中的值。初学者往往会这样写:void exchange(int x, int y){ int p=x; x = y; y = p;}之后,你会查找资料了解到应该这样写:void exchange(int *x, int *y){ int *p=x; *x ...

2019-09-24 16:49:31 2453 2

转载 C深入理解 数组指针和指针数组的区别

数组指针(也称行指针)定义 int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n,也可以说是p的步长。也就是说执行p+1时,p要跨过n个整型数据的长度。如要将二维数组赋给一指针,应这样赋值:int a[3][4];int (*p)[4]; //该语句是定义一个数组指针,指向含4个元素的一维数组。p=a; //将该二...

2019-09-22 15:08:21 162

原创 C 字符串操作函数总结

1.strcpy函数原型:strcpy(str1,str2);功能:将字符串str2复制到字符串str1中,并覆盖str1原始字符串,可以用来为字符串变量赋值返回:str1注意:1)字符串str2会覆盖str1中的全部字符,2)字符串str2的长度不能超过str1char str1[] = "We are csdn!";char str2[] = "Hello!";str...

2019-09-22 14:01:04 217

转载 C++ string类型的字符串长度获取的三种方法

(1). 用string的成员方法length()获取字符串长度 length()比较直观,表示的就是该字符串的长度。#include<iostream>#include<string>using namespace std;int main(){ string str="hello world"; cout<< str.lengt...

2019-09-22 12:36:18 4451

转载 Linux超全实用指令大全

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

2019-09-22 10:50:11 111

原创 C 计算字符串长度 及 strlen 和 sizeof 的使用、区别

一、计算字符串的长度 1、string头文件中的 strlen()函数#include<stdio.h>#include<string.h>int main(){ char* s="hello world"; printf("%d\n",strlen(s)); //输出 11} 2、sizeof() 操作符#include<st...

2019-09-22 10:12:34 876

转载 C深入理解 #、##、__VA_ARGS__和##__VA_ARGS__的作用

一、#用来把参数转换成字符串例子一:#include<stdio.h>#define P(A) printf("%s:%d\n",#A,A);int main(int argc, char **argv){ int a = 1, b = 2; P(a); P(b); P(a+b);}输出为:a:1b:2a+b:3例子二:...

2019-09-19 17:09:11 525

原创 C深入理解 条件编译 (#define、#if 、#ifdef、#elif、#endif)

一、预处理的条件编译预处理主要有三个方面的内容: 1.宏定义; 2.文件包含; 3.条件编译。 预处理命令以符号“#”开头。二、常用指令# 空指令,无任何效果#define 定义宏#undef 取消已定义的宏#if 如果给定条件为真,则编译下面代码#ifdef 如果宏已经定义,则编译下面代码#ifndef 如果宏没有定义,则编译下面代码...

2019-09-19 11:57:42 1829 2

原创 C++ 连接使用MySQL数据库

一、安装所需要的库sudo apt-get install libmysqlclient-dev 二、安装完成后,需要的头文件在 /usr/include/mysql目录下 常用的函数接口:在 /usr/include/mysql/mysql.h 头文件中三、接下来实例代码中所用到的函数,也是常用的函数// 获取或初始化MYSQL结构MYSQL* mysql_...

2019-09-18 22:47:38 307

原创 MySQL凝练 三

一、数据约束 约束:对表中的数据加以限制,不允许非法数据插入 主键:非空且唯一 primary key create table student(id int parmary key,name char(20),sex char); insert into student(name,sex) values('heeh','m'); 唯一性...

2019-09-18 20:49:19 104

原创 C++ 通过Java理解 get/set方法

一、引遇到了一个问题,有了构造函数,那么为什么还需要set函数和get函数呢?编程语言都有其相似之处,get和set在Java是很常用的函数,通过借鉴其用法,来深入了解 C++二、主要区别构造方法主要用于:定义一种规则,初始化值set()与get()主要用于:修改值,获取值。三、封装、安全在C++面向对象编程时,会用private来修饰成员变量,如此一来其他类,则不能...

2019-09-17 19:50:25 599 2

转载 c++ 初始化列表 详解

一、定义与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。class foo{private: string name; int id;public: foo(string s, int i):name(s), id(i){} ; // 初始化列表};从概念上来讲,...

2019-09-17 19:18:03 1045

转载 C++ string、const char*、 char* 、char[ ]相互转换(全)

string、const char*、 char* 、char[]四者类型经常会需要转化。一:转化总结形式如下:使用时,要对源格式和目标格式进行初始化。源格式赋值为具体的内容,目标格式赋值为空。 \ 目标格式 源格式 string const char* char* char[ ] string NULL cons...

2019-09-17 18:59:33 5852 1

原创 日期数据 Oracle 与 MySQL的区别

注意:数据库中的日期是一种特殊类型,需要一些函数进行转换Oracle: to_date(data_str,format_str) 把字符串按照一定的格式转换成日期数据 to_char(date,'yyyy-mm-dd') to_char(date,format_str) 把日期数据按照一定的格式转换成字符串 to_char(date,'yyyy-mm-dd')...

2019-09-16 23:43:20 751

转载 Linux 三种网络模式

Linux虚拟机有三种网络模式,分别是Bridged(桥接模式)、NAT(网络地址转换模式)、Host-only(主机模式)。 1、NAT(网络地址转换模式) 使用NAT模式,就是让虚拟系统借助NAT的功能,通过宿主机所在的网络来访问公网。在这种模式下宿主机成为双网卡主机,同时参与现有的宿主局域网 和新建的虚拟局域网,但由于加设了一个虚拟的NAT服务器,使得虚拟局域网内的虚拟机...

2019-09-16 20:05:29 932

转载 MySQL图形化工具-MySQLWorkbench功能介绍

一.MySQLWorkbench简介(来自百度百科)MySQL Workbench是一款专为MySQL设计的ER/数据库建模工具。它是著名的数据库设计工具DBDesigner4的继任者。你可以用MySQL Workbench设计和创建新的数据库图示,建立数据库文档,以及进行复杂的MySQL 迁移。MySQL Workbench是下一代的可视化数据库设计、管理的工具,它同时有开源和商业化的两个版...

2019-09-16 19:43:00 2569

转载 C 字符串函数 sprintf()、snprintf() 详解

一、sprintf() 函数详解在将各种类型的数据构造成字符串时,sprintf 的强大功能很少会让你失望。由于sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导致 sprintf 比 printf 有用得多。所以本文着重介绍 sprintf,有时也穿插着用用 pritnf。sprintf是个变参函数,定...

2019-09-15 23:09:26 73839 17

空空如也

空空如也

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

TA关注的人

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