自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(290)
  • 资源 (2)
  • 收藏
  • 关注

转载 聊聊map和vector的迭代器失效问题(某公司招聘笔试试题)

当删除一个STL容器(比如map, vector)中的某个元素时, 会引起迭代器失效, 所以, 我们务必提高警惕。 某次笔试, 我遇到这样一个题目: 删除map<int, int>中value为5的倍数的元素。 该题看起来很自然很简单, 实则有迭代器失效的陷阱。如果对迭代器失效问题一无所知, 则很容易写出如下的错误代码:#include <iostre...

2019-04-09 09:59:30 206

原创 【TCP/IP】TCP的三次握手和四次挥手

传输控制协议(TCP)是一种面向连接的协议,网络程序使用这个协议的时候,网络可以保证客户端和服务端的连接是可靠的,安全的。如果 A机向 B机发送“hello”,在物理网线上传输的数据不仅仅是“hello”这5个字符,其实除了hello(被称为有效载荷)之外,还必须有用于TCP/IP协议进行处理所需要的其他很多内容。这其中与socket 编程相关的最主要有4 个东西:A机 IP地址(源IP)、B...

2019-03-15 17:13:53 300

原创 Linux IO模型及 select、poll、epoll详解

一、IO模型对于一次IO访问(以read举例),数据会先被拷贝到操作系统内核的缓冲区中,然后才会从操作系统内核的缓冲区拷贝到应用程序的地址空间。所以说,当一个read操作发生时,它会经历两个阶段:1. 等待数据准备 (Waiting for the data to be ready)2. 将数据从内核拷贝到进程中 (Copying the data from the kernel to ...

2019-03-08 18:22:00 340

原创 二分查找(C++)

二分查找法作为一种常见的查找方法,将原本是线性时间提升到了对数时间范围,大大缩短了搜索时间,具有很大的应用场景,而在LeetCode中,要运用二分搜索法来解的题目也有很多,但是实际上二分查找法的查找目标有很多种,而且在细节写法也有一些变化。根据查找的目标不同,二分查找法主要分为以下三类:第一类: 需查找和目标值完全相等的数这是最简单的一类,也是我们最开始学二分查找法需要解决的问题,比如我们...

2019-02-16 21:07:50 6523 1

原创 KMP字符串匹配算法(看完必懂!!!)

KMP算法的原理这个算法理解起来比较复杂,看了网上很多帖子,写的都很乱,不容易理解。现在结合看过的一些书和视频写一些好理解的笔记,希望能给大家带来帮助:总的思想还是想要回退的时候能尽量偷懒,利用已知的信息,阮老师讲的很清楚:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm....

2018-12-18 14:21:41 805

原创 Python GUI之tkinter窗口实践

1.label和Button#!/usr/bin/env python# -*- coding: utf-8 -*-import tkinter as tkwindow = tk.Tk()window.title('zpz')window.geometry('200x100')var = tk.StringVar()l = tk.Label(window,text...

2020-03-31 09:10:35 398

转载 Python装饰器笔记

讲 Python 装饰器前,我想先举个例子,虽有点污,但跟装饰器这个话题很贴切。每个人都有的内裤主要功能是用来遮羞,但是到了冬天它没法为我们防风御寒,咋办?我们想到的一个办法就是把内裤改造一下,让它变得更厚更长,这样一来,它不仅有遮羞功能,还能提供保暖,不过有个问题,这个内裤被我们改造成了长裤后,虽然还有遮羞功能,但本质上它不再是一条真正的内裤了。于是聪明的人们发明长裤,在不影响内裤的前提下,...

2020-03-21 21:55:19 322

转载 如何利用VS查看C++类内存排布

书上类继承相关章节到这里就结束了,这里不妨说下C++内存分布结构,我们来看看编译器是怎么处理类成员内存分布的,特别是在继承、虚函数存在的情况下。工欲善其事,必先利其器,我们先用好Visual Studio工具,像下面这样一步一步来:先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 reportAllClassLayout,它可以看到所有相关类的内存布局,如...

2020-03-21 17:56:15 643

原创 C++智能指针之weak_ptr

weak_ptr 是一种不控制对象生命周期的智能指针, 它指向一个 shared_ptr 管理的对象. 进行该对象的内存管理的是那个强引用的 shared_ptr. weak_ptr只是提供了对管理对象的一个访问手段。weak_ptr是用来协助 shared_ptr 解决shared_ptr相互引用时的死锁问题,如果说两个shared_ptr相互引用,那么这两个指针的引用计数永远不可能下降为0...

2020-03-20 11:11:54 234

原创 Git 的一些笔记

git status:此命令提示有哪些文件可能需要被提交,包括已经更改的文件,或者自上次提交之后添加的新文件。 git add:在提交这些更改之前,你需要先使用 git add 命令将这些更改放到一个特殊的被称作暂存区的持久化容器中。之后,再使用git status就可以发现新的更改。 git commit:最后提交的时候记得添加一些方便他人理解的描述信息将本地仓库关联到Github上:...

2020-03-19 15:50:46 116

原创 C++的const和引用只能在初始化列表里初始化

class Book{public: Book( int s );private: int i; const int j; int &k;};//第一种Book::Book( int s ){ i = s; j = s; k = s;}//第二种Book::Book( int s ): i(s), j(s), k(s){}解释:第一种构造函数有错,而第...

2020-03-19 11:04:06 1422 2

转载 【转载】一篇HTTP长连接和短连接的很好的文章

HTTP长连接和短连接1. HTTP协议与TCP/IP协议的关系  HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。2. 如...

2020-02-16 18:43:50 167

原创 微信小程序页面栈实验及getCurrentPages方法的使用

创建两个页面一个模拟微博展示页,另一个模拟微博编辑页:微博展示页代码如下:// pages/weibo/weibo.jsPage({ /** * 页面的初始数据 */ data: { weibos:[] }, writeweibo:function(event){ wx.navigateTo({ url: '/...

2020-02-06 20:07:31 829

转载 微信小程序CSS之flex属性设置

flex属性flex属性是flex-basis、flex-grow、flex-shrink三个属性的简写。flex属性的取值有以下几种方式:1. auto: 允许增长、允许缩小、宽度为自动;2. none:不允许增长、不允许缩小、宽度为自动;3.非负数字: 这个数字表示的是flex-grow的值,且flex-shrink为1,flex-basis为0%。.inner{ ...

2020-02-05 12:43:32 421

原创 【武汉加油】小程序flex布局的主轴排列布局方式

设置在主轴上的排列方式默认情况下,是从左往右排列。在主轴方向上,可以通过justify-content进行设置:1. flex-start:项目靠近父盒子的左侧2. flex-end:项目靠近父盒子的右侧3. center : 居中显示4.space-evenly:沿主轴方向均匀分布5. space-between:子元素紧贴父容器的首尾两侧。...

2020-02-03 11:23:21 535

原创 微信小程序WXML语法之模板和引用

模板WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用。定义模板使用 name 属性,作为模板的名字。然后在<template/>内定义代码片段,如:<!-- index: int msg: string time: string--><template name="msgItem"> &l...

2020-01-31 15:43:08 2525

原创 C# Console.ReadLine() 与 Console.ReadKey() 用法

Console.Readkey()这个函数是为了在控制台窗口停留一下,直到敲击键盘为止。不然运行时,"Hello World!" 这句话会在控制台窗口一闪而过,没法查看。Console.Readkey();//与Console.Readline();//与Console.Read();区别:第一个在键盘敲击任意键退出;后两个差不多,都是输入任意东西后按回车才会退出。Con...

2020-01-30 20:57:35 3746

原创 关于微信小程序WXML列表渲染中的wx:key笔记说明

1.直接看看官方文档中给出的说明:如果列表中项目的位置会动态改变或者有新的项目添加到列表中,并且希望列表中的项目保持自己的特征和状态(如 input 中的输入内容,switch 的选中状态),需要使用 wx:key 来指定列表中项目的唯一的标识符。wx:key 的值以两种形式提供1.字符串,代表在 for 循环的 array 中 item 的某个 property,该 prope...

2020-01-30 20:34:26 1609

原创 word 写论文要求奇偶页眉不同,而页码连续。

按照插分页符、奇偶页不同、按不同章节设置完页眉后,会发现页脚奇数页和偶数页也不同,一般来说是奇数页有页码,偶数页没有。此时只需要 再把鼠标移动到偶数页页码位置,点页码----->页面底端----普通数字2,那么偶数页码出来了。如果不同章节中又出现了页码断了的情况,则将页码格式设置为续前节即可。...

2020-01-17 19:54:13 6843 1

转载 C语言中 typedef 定义的函数指针

在 C 里面,可以用 typedef 来为一个已有的数据类型增加一个新的别名。比如:typedef int Length;这种简单的形式,大家都能理解。可是遇到下面这种形式,不少人就傻眼了。比如:typedef int (*PFI)(int, const char *);难道是把 int 数据类型定义成了(*PFI)(int, const char *)的数据类型,可是...

2019-12-10 17:10:37 1738

原创 Urban Outdoor风格入门穿搭单品推荐

1.渔夫帽2.马甲(搭配T恤、卫衣、衬衫)多口袋的钓鱼马甲很容易营造一种户外的感觉。3.双肩包(尽量选择有立体感的双肩包,而不是书包)4.挎包5.裤子没有约束6.鞋子没有约束具体单品可以去看看《GO out》杂志...

2019-11-28 19:22:53 809

原创 串口调试助手中将TextBox中的输入转为十六进制发给串口助手

本周在一个上位机项目中需要将TextBox中的输入转为十六进制发给串口助手,添加一个TextBox,一个Button,一个SerialPort后在VS2017中调试通过,以下直接贴代码:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy...

2019-11-23 21:47:34 926

原创 单片机GPIO端口是干什么的?

GPIO是单片机的引脚输入输出功能。输出功能,就是把引脚变高和变低。输入功能,就是检测引脚上的电平是高电平还是低电平 。输出功能什么时候用?当你需要控制引脚为高电平或低电平时,该功能就是作为GPIO输出功能使用。例如,控制LED亮灭的时候,如下图所示:当给LED1_P低电平的时候,LED亮;给LED1_P高电平的时候,LED灭,所以需要把连接LED引脚的单片机引脚变高和变低...

2019-11-05 22:39:17 13254 1

原创 什么是Mesh网络结构?

本文是对什么是Mesh技术?网状网络(Mesh)和传统网络结构相比有什么优势?这篇文章的简化和总结,原文说的比较啰嗦,想看的点链接自己看。1.先来看传统局域网的问题:局域网的基本结构包括星型结构、环型结构、总线结构、分布式结构、树型结构等。最常见最广泛使用的星型结构是以中央节点作为核心,其他节点都连接至中央节点上,这种结构的成本较高、可靠性较低,但是其延迟小、结构简单便于管理。总线型结...

2019-10-27 11:04:25 14732

原创 当要SELECT的内容在两张表中时的查询办法

还是之前那三张表:查询选修了C02号课程的学生的姓名和所在系。【方法一】--选取内容在两张表中,第一种方法将两张表联结起来SELECT student.Sname,student.dept,Score.CnoFROM student join Score ON student.Sno = Score.Sno WHERE Cno = 'C02'【第二种】--...

2019-09-18 22:18:51 4281

原创 一道题搞懂数据库中Having的用法

先说结论:WHERE 搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。什么意思?我们拥有下面这个 "Orders" 表:O_Id OrderDate OrderPrice Customer 1 2008/12/29 1000 ...

2019-09-18 21:00:00 2105

原创 记录一道SQL练习题来说明Group by的用法

关于Group by的用法可以参考下文:https://www.w3school.com.cn/sql/sql_groupby.asp举个例子:有如下三张表:-- 1.分别查询学生表和学生修课表中的全部数据SELECT * FROM studentSELECT * FROM course-- 2.查询成绩在70-80分之间的学生的学号、课程号和成绩...

2019-09-17 23:35:14 242

原创 类选择器和元素选择器

我们先声明一个类选择器:<style>.blue-text {color: blue;}</style>上面的代码在 <style> 标记中声明了一个叫做 blue-text 的类样式。然后在h2元素上应用我们声明的类选择器:<h2 class="blue-text">CatPhotoApp</h2&...

2019-09-10 22:09:56 857

原创 举一个简单的例子来说明什么是CSS样式

假设代码为:<h2 style="color: red">CatPhotoApp</h2>你就给h2元素添加了inline style(内联样式)。内联样式是为元素添加样式的最简单有效的方式,但是更易于维护的方式是使用层叠样式表CSS(Cascading Style Sheets)。在代码的最顶端,创建一个如下的style元素:<style&g...

2019-09-10 21:49:20 265

原创 【剑指Offer】二进制中1的个数

题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。【解题思路】因为n有可能是负数,所以不能让n右移,因为最高位1为符号位,不能算作是n本身。所以干脆用一个变量从低位向高位走,和n逐位相与,计数。class Solution {public: int NumberOf1(int n) { int sum = 0; ...

2019-07-30 22:31:21 90

原创 【linux系统编程】dup和dup2函数

dup()函数和dup2()函数书上在文件操作那一章,已经讲过了,这周看重定向这块,发现它挺重要,就再看了回,记录下。1、 dup函数头文件及函数定义:#include <unistd.h>int dup(int oldfd);dup用来复制参数oldfd所指的文件描述符。当复制成功时,返回最小的尚未被使用过的文件描述符,若有错误则返回-1.错误代码存入errno中...

2019-07-25 21:31:27 213

原创 串口调试助手是干嘛的

简单来说其实就是用于上位机和下位机通信用的一个桥梁软件:接受单片机发送的数据显示给你看,或者人工发送数据给单片机处理。

2019-07-22 22:21:04 11805 1

转载 串口通信基本知识

串口通讯对单片机而言意义重大,且其所需电缆线少,接线简单,所以广泛应用于远距离传输中。在串行通信中,数据通常是在两个站之间传送,按照数据在通信线路上的传送方向可分为3种基本的传送方式:单工、半双工和全双工,如图11-4所示。图11-4 单工、半双工和全双工通信单工通信使用一根导线,信号的传送方和接收方有明确的方向性。也就是说,通信只在一个方向上进行。若使用同一根传输线既作为接收...

2019-07-22 21:21:58 571

原创 【程序员面试金典】用C语言实现reverse字符串反转函数

1 #include<stdio.h> 2 3 void reverse(char *str){ 4 char temp; 5 char* end = str; 6 if(str){//找到字符串的结尾位置 7 while(*end != '\0') 8 ++end; 9 }...

2019-07-13 21:54:32 2192

原创 lstat函数、fstat函数和stat函数获取文件属性的区别

1.lstat 和 stat 的区别当我们用ln -s 去软链接一个文件时,如果用stat 去查看这个链接文件的属性,则它指向的是链接文件指向的原文件的属性;而用lstat 则可以读取到链接文件本身的属性。2. fstat 和 stat 的区别int fstat(int fd,struct stat *buf);int stat(const char *pathname,st...

2019-07-13 17:18:12 840

原创 用stat函数获取文件信息

前面我们初步认识了stat这个函数,并用它学会了查看文件的大小:linux 用stat 函数来查看文件大小;现在我们来再看看stat 结构体中的st_mode 成员,st_mode 其实是2byte的16bit的数,下面是用八进制表示的st_mode ,总共包含了下面这些情况: S_IFMT 0170000 掩码 S_IFSOCK 0140000 套接字...

2019-07-13 16:59:52 698

原创 linux 用stat 函数来查看文件大小

stat 函数讲解表头文件: #include <sys/stat.h> #include <unistd.h>定义函数: int stat(const char *file_name, struct stat *buf);函数说明: 通过文件名filename获取文件信息,并保存在buf所指的结构体stat中...

2019-07-13 12:02:54 2325

原创 关于Linux文件中的阻塞和非阻塞

阻塞与否是文件的属性普通文件默认不阻塞 终端设备:/dev/tty 默认阻塞 管道、套接字默认阻塞举个栗子,下面利用非阻塞模式打开文件,然后不断循环读取缓冲区中的数据,如果没有数据则循环等待;#include<unistd.h>#include<fcntl.h>#include<errno.h>#include<stdio.h>...

2019-07-13 11:45:37 835

原创 为什么要用十六进制和八进制?

比如上面这个数,10000,才五位,但是用二进制的话就要那么老长,所以用十六进制或八进制这样的进制可以有效的减小书写长度。

2019-07-10 22:06:08 2892

原创 关于linux的性能评估

总体上采用总分的结构来分析系统性能:1.常用系统命令Vmstat、sar、iostat、netstat、free、ps、top等2.常用组合方式• 用vmstat、sar、iostat检测是否是CPU瓶颈• 用free、vmstat检测是否是内存瓶颈• 用iostat检测是否是磁盘I/O瓶颈• 用netstat检测是否是网络带宽瓶颈1.首先用top或者uptime(top...

2019-07-10 21:03:45 273

Accelerated C++

Accelerated C++ ,很好的C++入门书籍,建议先看这本。

2018-11-20

基于Python实现的微信好友数据分析

这篇文章会基于 Python 对微信好友进行数据分析,这里选择的维度主要有:性别、头像、签名、位置,主要采用图表和词云两种形式来呈现结果,其中,对文本类信息会采用词频分析和情感分析两种方法。

2018-11-16

空空如也

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

TA关注的人

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