自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李御风的博客

御风者,乘龙御风者也

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

原创 源码阅读心得

简单记录一下自己最近一段时间阅读一个C语言开源项目的心得1、阅读工具source insight 4.0 + gdb + Typora2、阅读心得1)不要陷在代码的实现细节里面出不来,浪费时间。因为稍微大一点的开源项目,都有很多自定义的结构体,这些结构体封装了大量的实现细节,特别是C语言的指针满天飞,看一会头就昏了。所以在看的时候,要先抓住整个实现的骨架,而不是枝干。什么是骨干?**就是这...

2020-04-07 09:58:35 232

原创 使用expect 实现scp 自动输入密码

#!/usr/bin/expectsrc_path=./opencv.tar.gzdst_path=/home/tempset passwd "123456"spawn scp ${src_path} root@${ip}:${dst_path}expect { "password:" { send "$p...

2019-12-13 09:18:32 517 1

原创 shell 技巧汇总

1、替换多个空格为一个空格sed -i 's/[ ][ ]*/ /g' file.txtecho $value | sed s/[[:space:]]//g #去除空格echo $value | sed '/${match_part}'/d' #删除匹配的行echo $value | sed '1d' #删除一行2、oracle 语句嵌入shell脚本中function selec...

2019-12-12 17:05:50 303

原创 git 回退代码

git 回退代码参考博文1参考博文2需要注意的是,如果你现在有commit1、commit2、commit3 ,你打算回退到commit2,保守的做法是依次git revert -n commit3 git commit -m ""git push xxx...

2019-12-12 16:42:52 199

原创 docker常见问题解决

docker /mnt/lib/占用磁盘空间问题解决service docker stoprm -rf /var/lib/dockerservice docker start

2019-08-14 10:46:29 388

原创 TCP连接建立和释放

三次握手1、客户端主动打开连接,服务端被动打开连接2、为何需要“第三次握手”做确认,按照一般的逻辑你发送我确认就可以了,不需要再次确认。这里主要是为了防止已经失效的报文又传给服务端:下面以只有两次握手举例:client第一次发送连接请求给server,但是由于网络情况,超时,于是client再次发送连接请求给serverserver接收到client第二次发送的连接请求,于是发送确认连...

2019-02-25 17:31:49 3438

原创 C++中变量声明和定义

1、声明和定义都规定了变量的名字和类型,但是定义会申请内存空间,也可能为变量赋一个初始值。2、同一个变量声明可以有多处,但定义只能有一处extern int i; //声明i而非定义iint j;//声明并定义jextern关键字就是告诉编译器,这个变量i定义在其他文件中3、任何显式初始化的声明也会成为定义extern int i = 3;//定义,非声明4、函数声明与定义区别在于...

2019-02-25 13:55:13 6453 3

原创 STL之vector

1、vector本质上是一个向量,它的size和captical是两个概念,前者指vector中元素个数,后者指vector实际可以容纳元素个数。2、插值的时候,当vector发现内存不够的时候,会做扩容操作,vector每次扩容都是原来内存块大小的两倍3、因为vector的clear()只保证size为0,但不保证内存释放,也就是内存可能释放也可能不释放。故常使用下面代码清空vectorv...

2019-02-25 10:37:18 232

原创 c语言局部变量 静态局部变量 全局变量与静态全局变量

https://www.cnblogs.com/lanjianhappy/p/6035433.html全局变量和静态变量的生命周期是一样的,都要等到程序结束被释放二者作用域不一样,静态变量取决于定义在哪里。全局变量(定义在函数外的变量),作用域为整个文件,通过extern实现跨文件引用。普通变量与全局变量,生命周期不一样,分配的空间位置不一样。普通变量不会被初始化,但全局变量默认初始化。...

2019-02-24 21:42:24 1002

原创 C++多态实现

1、非虚函数的调用在编译时进行绑定,通过对象进行的函数(虚函数火非虚函数)调用也在编译时确定2、每个有虚函数的类都维护着一张虚函数表,表中是该类中虚函数的地址。3、子类父类各有各的虚函数表,互不干预。但子类会继承父类中的表。4、子类中的虚函数表可能被覆盖,如果重载了虚函数。5、对象中有一隐含指针指向它对应类的虚函数表6、基类指针被赋值为派生类对象的地址,就可以找到指向该派生类虚函数表的隐...

2019-02-24 21:29:59 165

原创 c++ 常量成员函数

MyString& MyString::operator+=(const MyString& str) const{ size_t len = _len + str.size(); char* temp = new char[len+1]; strcpy(temp, _data); strcpy(temp+_len, str.c_str()); delete [] _d...

2019-02-22 17:36:41 406

原创 new默认初始化

using namespace std;char arr[20];//默认情况下,new分配的对象,不管是单个分配的还是数组中的, 都是默认初始化的。char *p = new char[20];cout << arr[10] << endl;cout << int(p[10]) << endl;cout << int(p[1...

2019-02-19 10:21:01 1880

原创 TCP和UDP区别

TCP是面向连接,通过三次握手建立连接,可以看成字节流TCP保证数据的正确性和数据顺序TCP服务是可靠的,通过确认,窗口重传,拥塞控制机制实现,传完断开连接节省资源缺点是相对于UDP慢,效率低,占用资源高TCP主要用于对稳定性正确性有一定要求的场合,如HTTPS,邮件UDP是面向报文的,无状态传输机制,实时性好UDP服务是不稳定不可靠的,可能丢包,不保证数据的有序UDP常用于视频传输...

2019-02-19 10:00:44 148

原创 浮点数比较大小

浮点数可以比较大小,如果是<,>,可以直接写成if (a > b) ,但如果要比较=,!= ,就需要考虑精度问题。正常的思路,我们比较两个数大小是将两个数做差,与0比较,看是否等于0,因为浮点数在计算机里面表示问题(二进制无法精确表示一些浮点数),所以这里要改成两个数的差是否在一定精度范围内。#define EPS 1e-6if(((a - b > - EPS) &a...

2019-02-19 09:40:51 8308 3

原创 python 爬虫总结

在上一家公司写了一年的爬虫,这里做个总结。爬虫构成爬虫主要包含采集模块,解析模块,存储模块还有清洗模块。有些抓取整个网页的爬虫可能没有清洗模块,但解析模块是一定会有的,因为需要对网页解析提取出有用的url,放到url列表中。采集模块主要功能是访问url网页,下载网页,然后交给解析模块,进行解析,提取其中符合条件的url,如果要在线清洗,还需要调用清洗模块,提取网页中特定的数据,最后将...

2019-01-02 16:02:05 450

原创 numpy的array和python中自带的list之间相互转化

import numpy as np>>>a = ([3,2, 4, 5.0])npa = np.array(a)>>>array([ 3., 2., 4., 5.])npa.tolist()>>>[3.0, 2.0, 4.0, 5.0]

2018-02-13 10:40:27 449

原创 ubuntu 下matplotlib 中文问题

直接贴代码import matplotlibmatplotlib.use('Agg')import numpy as npimport matplotlib.pyplot as plt myfont = matplotlib.font_manager.FontProperties(fname="/usr/share/fonts/truetype/arphic/uming.ttc")...

2018-02-13 10:34:21 271

原创 python 日期操作

1,日期转成绝对秒数time.mktime(time.strptime(‘2018-02-12’, ‘%Y-%m-%d’)) 1518364800.02,绝对秒数转日期time.strftime(“%Y-%m-%d”, time.localtime(1518364800)) 2018-02-113,获取当天日期time.strftime(“%Y-%m-%d %H:%M:...

2018-02-13 10:15:24 493

原创 使用pandas从mysql中导出数据

import pandas as pdimport MySQLdbhandle = MySQLdb.connect(host="xxx.xxx..xxx.xxx",user="root",port=xxxx, passwd="xxxxxx",db="xxxxx",charset="utf8")sql = xxxxx #查询语句df = pd.read_sql(sql, con=han

2017-12-11 10:47:35 2187

原创 产品的一点思考

这几个月在公司产品中实现了一个自己的模块,下面就是说说这个模块给我的感悟 好的产品必定是大量心力的投入 以前玩app,用别人的软件,没有感觉到要做出一款好的应用有多难,注意力都集中在使用上了。对于别人为什么这样设计,数据为什么这样展示都没有深入思考过。这次做的模块,1.0版本完成了需求,个人感觉ok了。没几天,领导又提了新的需求,那就继续干呗。就这样,不断的更新需求,不断的完善结果。从最初的直接

2017-11-23 19:47:55 193

原创 python 中字典对象按照 value 排序

dit = {1:’a’, -1:’b’, 2:’c’, -2:’d’} 直接使用sorted方法, 只能根据key进行排序 sorted(dit) Out[6]: [-2, -1, 1, 2]如果需要根据value排序,可以 sorted(dit.items(),key = lambda x:x[1],reverse = True) Out[7]: [(-2, ‘d’), (2, ‘

2017-10-16 10:41:00 6712

原创 python xpath 提取html 中使用<br>分割的文本

文本格式形如:tips_lst = []lst = page.xpath('//div/div')#提取 1、荷兰豆汆烫变色即可,千万不要过火,时间也就是几秒钟。print lst[0].text#依次提取 2, 3, 4lst = page.xpath('//div/div[@class="tip"]/br')for ll in lst: print ll.tail

2017-09-20 15:26:55 11341 1

原创 matplotlib 绘制条形图

代码部分:import matplotlibmatplotlib.use('Agg')import numpy as npimport matplotlib.pyplot as pltx = [15, 20, 30]text_tag_lst = ['blue','green', 'black']myfont = matplotlib.font_manager.FontProperties(

2017-09-19 09:40:44 2006

原创 pandas 生成excel 和 csv

import pandas as pda = ['a','b','c']b = [1,2,3]dit = {'char':a, 'num':b}file_path = r'./output.xlsx'writer = pd.ExcelWriter(file_path)df = pd.DataFrame(dit)#columns参数用于指定生成的excel中列的顺序df.to_exce

2017-06-25 10:02:52 21224

原创 C++抽象工厂模式(abstract factory patterns)实现

#ifndef SKIN_H#define SKIN_H#include <iostream>//Buttonclass Button{ public: virtual void display() = 0;};class SpringButton : public Button{ public: void display() {

2017-02-15 19:23:27 450

原创 C++工厂方法模式(Factory Method Pattern)

#ifndef LOGGER_H#define LOGGER_H#include <iostream>#include <string>class Logger{ public: virtual void writeLog() = 0;};class DatabaseLogger : public Logger{ public: void

2017-02-14 22:27:43 580

原创 C++简单工厂模式(Simple Factory Pattern)实现

#ifndef CHART_H#define CHART_H#include <iostream>#include <string>class Chart{ public: virtual void display() = 0; };class HistogramChart : public Chart{ public: Hist

2017-02-14 21:56:16 252

原创 C++ 单例(singleton)模式实现

1、饿汉式单例类#ifndef EAGER_SINGLETON_H#define EAGER_SINGLETON_H#include <iostream>#include <pthread.h>class EagerSingleton{ public: ~EagerSingleton() { delete instance_;

2017-02-13 20:06:44 523

原创 winscp安装

下载winscp https://winscp.net/eng/download.php安装(next 即可) 尝试用root账号登陆,拒绝访问 原因1:ubuntu 系统root没有设密码 sudo passwd root (修改root账户密码,按照要求输入密码即可)原因2:ubuntu 系统中没有ssh 服务 使用service ssh status 测试一下,如果没有 sudo

2017-01-27 17:21:44 3051

原创 本地安装SVN(win10)

本地安装SVN(win10)经常要修改word文档但word本身不支持记录历史修改,所以索性给自己的笔记本上安装个svn。win10下安装svn可以分为两步: 1,安装软件 2,设置1,安装软件 服务端 VisualSVN-Server-3.5.7-x64.msi http://subversion.apache.org/packages.html#windows 客户端 Tortoi

2017-01-26 16:47:07 1948

空空如也

空空如也

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

TA关注的人

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