自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于boost实现点到线段的投影

该算法实现于boos中t的geomertry中,在distance算法函数中,其中的求点到线段的距离中用到了投影计算其核心思想是:三角形的相似性,通过向量点乘,得到两个相似三角形的边的比值/* *brief: project one point onto a segment *parma1: the point to be projected *param2:

2016-05-31 16:06:01 854

转载 cout 输出指定位数的浮点数

#include #include    //注意要包含该头文件using namespace std;int main( void ){   const double value = 12.3456789;    cout    cout    cout    cout  fixed setprecision(4)    cout    c

2016-03-22 15:56:18 6165

原创 保存一下自己比较实用vim的配置

为了方便的阅读代码需要装这些插件:1、taglist,用于读代码中的tag2、winManager,查看目录下面的文件3、minibufexpl,可以在最上面看到在vim中打开的文件set tags=tags #tags文件直接在当前目录下set nuset fileencodings=utf-8,gb2312,latin-1,gbk,unicode #文件编码

2016-01-20 16:33:55 592

原创 linux删除除了某个文件之外的文件

使用rm -r !(a)即可如果是在多个子目录下:如,有两个子目录,我想删除除前缀为hello外的其它文件:dir1/hello.a         hello.b         hello.c         a         b        c        ddir2/hello.a         h

2015-12-29 16:54:05 547

原创 C++二维数组作为参数问题

使用C++写程序也写了这么长时间了,发现距离掌握这门语言依然非常遥远,经常被一些细节问题问倒,前几天被一大牛问到c++里面怎么向一个函数传递二维数组,脑子中的第一反应是:f(int a[][])(因为比较早这前做过很短时间的安卓开发,Java的基本方法还是懂一些,好像Java就是这样传递的)或者f(int **a)(因为char **这个大家都懂的),但是回过头来一想,要是直的这么简单,人家为什么

2015-12-01 16:06:09 4225

原创 Linux线程池实现之改进

上一篇写到实现了一个线程池,但是那个线程池的任务回调函数却用到了四个变量之多,自己又仔细思考了一下,这样做只是为了把任务函数的参数传进行去而以,这样做真的是多此一举,既然参数据设定为void *类型的,那就完全可以传进行所有类型的参数,完全可以将参数组成一个结构体, 将结构体的指针传给回调函数。改进代码如下:#include #include #include #include

2015-11-23 19:11:31 390

原创 Linux C++线程池的实现

线程池通过pthread_create创建指定数量的线程,线程函数中实现一个循环,循环中调用worker实现不同的功能。每一个任务(worker)中维护有该worker的回调函数、回调函数的参数、任务列表(worker队列)。每一个线程创建后,使用pthread_cond_wait进行阻塞,等待任务列表中有任务进入。根据业务需要,实现了一个线程池,这个线程池在c++实现时,遇到一个问题

2015-11-13 17:19:02 478

原创 posix信号量对system V共享内存的同步控制

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl

2015-10-24 17:25:48 483

原创 堆排序python实现

因为部门频繁调整,半年多时间直接上级换了三个,之前一起工作的同事被调离的时候大头没有放我过去,说还有业务让我支撑,在这次调整大头也被调走了,现在小团队的业务已经不再重要,人也都是一些老弱病残,并且技术路线也与部门大团队完全不同,因此,最近想换一个公司或者部门来寻找更好的发展。当我前几天到公司另一个部门面试了以后,才意识到对于一个刚刚工作1年多的人,在将近1年的业务紧密相关的开发下,算法已经忘干净了

2015-10-23 10:56:51 524

原创 IO多路复用学习select

Linux系统调用可以使我们监控多个文件句柄的状态,当没有文件句柄就绪时,程序会阻塞,直到有文件句柄状态发生变化。#include        int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeval *timeout);          max

2015-10-10 17:32:17 324

转载 C语言宏定义作用、使用方法小结(2)

要写好C语言,漂亮的宏定义是非常重要的。宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等。  在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定义。那么究竟是用函数好,还是宏定义好?这就要求我们对二者进行合理的取舍。  我们来看一个例子,比较两个数或者表达式大小,首先我们把它写成宏定义:  #define MAX(

2015-10-10 11:01:43 2160

转载 C语言宏定义作用、使用方法小结

宏广泛用于C语言程序中,本文总结了宏的分类, 作用与使用注意事项 宏定义分类: (1)不带参数的宏定义 形式: #define 宏名 [宏体]功能:可以实现用宏体代替宏名使用实例: #define TRUE 1作用:程序中多次使用TRUE,如果需要对TRUE的值进行修改,只需改动一处就可以了  (2)带

2015-10-10 09:51:37 3980 1

转载 shell中的${},##和%%的使用

假设我们定义了一个变量为:file=/dir1/dir2/dir3/my.file.txt可以用${ }分别替换得到不同的值:${file#*/}:删掉第一个 / 及其左边的字符串:dir1/dir2/dir3/my.file.txt${file##*/}:删掉最后一个 /  及其左边的字符串:my.file.txt${file#*.}:删掉第一个 .  及其左边的字符串:

2015-09-10 16:50:37 308

原创 经验积累

将list分为3段:>>> list = range(100)>>> list[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,

2015-08-18 10:13:10 320

原创 看到别人的Python爬虫博客,自己也模仿着写一个,顺便练习一下python

今天在csdn看到“djd已经存在”的爬虫博客,之前没有接触过爬虫,看到博主的简单代码也算是对爬虫有了一些爬虫有了一些初步的了解,也体会到Python方便的文本操作对于爬虫之类的工作一些遍历之处。我的理解是,首先通过url请求要搜的内容,内容一html的形式返回,通过对html进行解析,就可以得到需要爬虫的内容。url可以到浏览器上自己获取#!/usr/bin/pyth

2015-05-27 13:47:52 698

原创 Linux下守护进程shell角本编写

守护进程是Linux下的后台服务进程(Daemon进程),它的生存周期较长,独立于控制终端并且周期性的执行某种任务处理某些事件。守护进程的角本一般有这样一些处理逻辑:1、启动,2、停止,3、重新启动,4、查看状态1、启动:使用新的进程开启守护进程程序,并且退出启动进程,这样,守护进程的父进程为init进程。2、停止:得到守护进程的PID,将守护进程杀死。3、重新启动

2015-05-18 16:47:11 1154

原创 vsftpd建立虚拟用户登录

一、安装vsftpdsudo yum install vsftpd启动: sudo service vsftpd start二、建立虚拟用户:1、虚拟用户口令文件: 新建一个虚拟用户口令文件ftplog.txt文件: [nai.zhao@DELL-F847S12 data]$ vi ftplogin.txt奇数行为用户名,偶数行为密码 jiaochafenxi jiaochafen

2015-05-11 16:22:27 533

原创 工作中遇到的问题:百万条数据的查询、删除、修改效率提高的一些思考,解决方案(二)

1、在数据库中为需要where的字段建立索引:create index mesh_idex on road_2015(mesh);(create index 索引名 on 表名(字段名))在数据库中按照mesh字段建立索引后,对于15905283条数全部的version字段按照mesh字段进行update的单进程耗时为32分钟。2、使用多进程:python多

2015-04-21 13:44:36 563

原创 工作中遇到的问题:百万条数据的查询、删除、修改效率提高的一些思考,解决方案(一)

高德地图把全国的地图按照1:2.5万的比例尺划分为102955个图幅,全总道路数据有百万条,百万条道路数据的数据库可以使用多进行并行、数据库建立索引以提高查询、修改、删除的效率

2015-04-20 16:39:14 2223

转载 【转】linux shell字符串截取方法总结

在使用用shell角本对字符串进行截取

2015-04-15 14:09:46 318

TCP-IP详解卷三

第三卷的内容细节覆盖了当今TCP/IP编程人员和网络管理员必须熟练掌握的四个基本方面: T/TCP (TCP事务协议),这是对TCP的扩展,使客户--服务器间的事务传输更快更有效和更可靠; HTTP (超文本传送协议),这是飞速扩展中的万维网的基础; NNTP (网络新闻传送协议),这是Usennet新闻系统的基础; UNIX域协议,这是在UNIX实现中应用非常广泛的一套协议。 与前面两卷一样,本书有丰富的例子和实现的细节,他们都是4.4BSD-Lite中的网络代码。

2015-04-29

TCP-IP详解卷二

本书完整而详细地介绍了TCP/IP协议是如何实现的。书中给出了约500个图例,15 000行实际操作的C代码,采用举例教学的方法帮助你掌握TCP/IP实现。本书不仅说明了插口API和协议族的关系以及主机实现与路由器实现的差别。还介绍了4.4BSD-Lite版的新的特点,如多播、长肥管道支持、窗口缩放、时间戳选项以及其他主题等等。读者阅读本书时,应当具备卷1中阐述的关于TCP/IP的基本知识。本书适用于希望理解TCP/TP协议如何实现的人,包括编写网络应用程序的程序员以及利用TCP/IP维护计算机网络的系统管理员。

2015-04-29

空空如也

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

TA关注的人

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