自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老徐的博客

一个刚毕业的码农

  • 博客(32)
  • 资源 (1)
  • 收藏
  • 关注

转载 红黑树实现原理

一、红黑树介绍1、定义每个结点或者为黑色或者为红色根结点为黑色每个叶结点(实际上就是NULL指针)都是黑色的如果一个结点是红色的,那么它的两个子节点都是黑色的(也就是说,不能有两个相邻的红色结点)对于每个结点,从该结点到其所有子孙叶结点的路径中所包含的黑色结点数量必须相同2、二叉树和AVL树比较1、二叉树任意节点左子树不为空,则左子树的值均小于根节点的值.任意节点右子树不...

2019-08-17 23:06:12 2418 3

原创 字典树和基数树

一、字典树 1、概述字典树是一种前缀查找树,在前缀匹配查找中应用比较多,查找树的层级取决于字符串长度,时间复杂度O(1),但是他要求每个节点要有26各分支,所以空间开销比较高,是一种典型的以空间换时间的数据结构。 2、实现原理1)、字典树快速查找是依赖于将一个字符串分解成单个字符,然后每个字符单独作为一个节点,按字符串顺序链接,到达单词结尾时做一个结束标记。一个单词构成一...

2019-08-17 23:04:53 1555

转载 linux c嵌入式汇编关于输入输出限定字段说明

在内嵌汇编中,可以将C语言表达式指定为汇编指令的操作数,而且不用去管如何将C语言表达式的值读入哪个寄存器,以及如何将计算结果写回C 变量,你只要告诉程序中C语言表达式与汇编指令操作数之间的对应关系即可, GCC会自动插入代码完成必要的操作。1、简单的内嵌汇编例: __asm__ __volatile__("hlt"); "__asm__"表示后面的代码为内嵌汇编,"asm"是"...

2019-08-12 14:15:25 665

转载 setsockopt参数之TCP_NODELAY

转载:神秘的40毫秒延迟与 TCP_NODELAY 1 现象 现象是这样的,首先看我用 ab 不加 -k 选项的结果: [~/dev/personal/breeze]$ /usr/sbin/ab -c 1 -n 10 http://127.0.0.1:8000/styles/shThemeRDark.css This is ApacheBench, Version 2.3 <Revisio

2017-12-27 00:30:04 8095 1

转载 iptables

一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网关。对于TCP/IP的七层模型来讲

2017-12-26 16:11:21 242

转载 google test 安装

Google Test (libgtest) 是由谷歌开发的一款基于xunit框架的跨平台单元测试框架,C#上的NUnit,Java的JUnit写单元测试非常容易,也不乏可视化工具与IDE集成插件,深受喜欢测试区洞开发的程序员的喜爱。但对于C++来说,写测试就看着麻烦一些。但如果用习惯了,google test还是不错的。google test更多的信息这里就不赘述了。下面根据我的实践,总结以下安装

2017-12-26 00:31:43 2976

原创 ubuntu下安装cunit

参考blog:http://blog.csdn.net/cupedy/article/details/749319381、下载cunit包 https://sourceforge.net/projects/cunit/2、安装: 注意:不能按照源码提供的readme里面的方式安装,会有坑1)确保 安装automake和libtool,2个 必须都安装才能进行下一步,否则在automake安装之后

2017-11-22 23:19:40 2650 1

原创 c++函数对象构造函数和operator()执行关系

函数对象常用在stl的算法中,用于特殊的匹配定制功能。在执行的函数对象中构造函数和重载()函数的关系先后顺序

2017-04-12 23:19:47 2341 1

转载 关于模板template的泛型参数的构造函数

#include <iostream>#include <cstddef>using namespace std;class alloc{public: alloc() { cout << "alloc()" << endl; }};template <class T,class Alloc =alloc,size_t Bufsize = 512>c

2017-03-29 00:09:48 1888

原创 lua面向对象的2种私密性封装

一、返回tablelocal function newAccount( initCount) local self = { count = initCount} set = function( c) self.count = c end get = function( ) retur

2017-03-27 01:03:39 536

原创 lua的伪面向对象和继承理解

关于 setmetable 和index的理解的博文 http://blog.csdn.net/wisdom605768292/article/details/36662033总结: **1.在表中查找,如果找到,返回该元素,找不到则继续2.判断该表是否有元表,如果没有元表,返回nil,有元表则继续3.判断元表有没有__index方法,如果__index方法为nil,则返回nil;如果__in

2017-03-27 00:20:07 401

原创 sql语句嵌套子查询将子查询结果作为表与其他表再联接查询

子查询 要用()括起来实例: info( uid,serv_id,app_id)user(uid,uname)app(id,name)这三个表中,info表的 serv_id 和app_id是对应app表的id,能通过serv_id 和app_id查到对应的app的name要求将info表的id字段转化为nameselect tmp.uname,tmp.servname,app.name as a

2017-03-23 00:17:34 28499 1

原创 sql语句跨数据库的表联接

直接使用 数据库名.表名来联接以mysql为例 说明跨数据库的表联接1、 数据库 db1 表 tb1(uid,username,groupname) 2、数据库 db2 表 tb2(uid,phone,addr)现在要联接tb1和tb2两张表select a.uid as uid ,a.username as uname ,a.groupname as group,b.phon

2017-03-23 00:04:12 2073

原创 伪代码编程过程

一、伪代码伪代码的指导原则: 1、用类似的 英语来描述特定操作。2、避免使用目标语言的语法来描述,伪代码能让你在一个比代码更高的层次上进行设计。当用编程语言的语法来描述时,你的伪代码设计就降到了一个更低的层次。3、在意图的层面上去编写伪代码,用伪代码来描述该解决方法的意图,而不是去用目标语言去编写实现方法。4、在一个和目标语言足够适合的层次来写伪代码,比如 一个伪代码语句能够代表当前 主流的高级语

2017-02-14 23:38:31 6071

原创 防御式编程

防御编程的核心思想是: 子程序应该不因传入的错误数据而被破坏,哪怕由其他子程序产生的错误数据。更确切的说,必须承认程序会有问题,都需要被修改。防御编程的最佳方式: 一开始不要再代码中引入错误,使用迭代式设计、编码前先写伪代码、写代码前先写测试用例、底层设计检查等。一、保护程序免遭非法数据破坏1、检查所有来源于外部的数据的值。2、检查子程序的所有输入参数的值。3、决定 如何处理错误的输入数据。二 、断

2017-02-14 22:30:47 4590 1

原创 高质量子程序设计

一、创建子程序的正当理由降低复杂度。 通过子程序来隐藏程序的实现细节,只需对外提供调用接口 (频繁重复的小段代码,抽象成函数)引入中间、易懂的抽象 通过给一段程序取一个足够说明语义的名字,该名字能够提供更高层次的抽象,使代码更具有可读性。避免代码重复如果2个子程序都拥有相同的代码段,有两种方法去重。 1)把重复部分提取出来,放入基类中,把不同部分放入派生类中 2)把重复部分放入新的

2017-02-12 23:20:26 645

原创 类的设计

一、类的基础:抽象数据类型ADTADT最大的益处是 实现细节隐藏,把关键数据隐藏在接口内,数据改动不会影响接口函数。把常用的底层数据类型创建为ADT,并使用这些ADT,而不需要使用底层数据(底层数据操作在ADT内部实现),也就是说尽可能的使用更高的抽象层次。二、良好的类接口1、类的接口应该具有一致的抽象层次。即每个类的接口仅能实现一个ADT的操作,包含多个ADT的操作功能的类都是不明确的类接口。

2016-12-26 00:48:57 2169

原创 软件构建中的设计

一、设计的挑战1、设计中存在的一些问题是必须通过解决或者部分解决才能明确的问题,所以在实际设计中你必须把问题“解决”一遍,才能定义它,然后再次解决,循环往复,最终形成一个可行性方案。2、设计师了无章法的过程,多次的犯错时设计的关键所在。在设计阶段犯错并加以改正比在实际编码中发现问题并改正花费的代价要低很多。3、设计是确定取舍和不断调整顺序的过程。二、关键的设计概念## **1、设计的首要技术使命是

2016-12-16 01:37:39 486

原创 软件构建的前期准备

注:第三章 三思而行:前期准备首先要明确: 项目质量的关键不在于后期的测试工作,测试只是占项目的完整质量,排查bug的一小部分,它不会纠正制造的“一个错误的产品”,所以关键在于软件构建活动之前的问题定义和需求分析。小系统,风险低,需求简单中型系统,存在风险大型系统,风险高,需求变化大2、在做每一个项目之前,应该为自己细分一下工作量。具体而

2016-12-01 01:23:58 1841

原创 理解软件开发

注: 第一~二章小节1、软件开发的总体流程1) 定义问题2) 需求分析3) 规划构建4) 软件架构5)详细设计6) 编码与调试7)单元测试2、学会用隐喻理解软件开发理解生活中的事物,从中吸取发散出模型到项目开发中。 如 种植培育模型 可以理解成增量开发模型

2016-12-01 00:22:55 429

转载 map按value排序的问题

参考 http://blog.csdn.net/acidgl8757/article/details/17416439实际上对map是红黑树实现的非线性的容器,不能直接使用迭代的sort算法对map中的value进行排序。所以需要将map的pair<key,value> 转化到vector之类的线性容器之中实现排序功能。而且排序的结果存放在你转化的容器里面,对map的原值不会产生影响。type

2016-11-30 00:17:32 936

原创 md5值 作为map<string,time_t>键值

在后台 服务器处理客户端发过来的数据时,由于通信网络传输 较差,实际收到了客户端的数据并进行了处理,给出了回应,但客户端由于网络原因判断为该条消息未发送成功,而重发。则服务器程序必须做出去重。观察 实际解析到的消息结构体 如下typedef struct{ time_t m_c_time, string m_localid, string m_buddyid,

2016-11-29 01:14:48 1020

转载 epoll基础总结

转自 http://www.fx114.net/qa-235-266230.aspx一、 介绍 Epoll 是一种高效的管理socket的模型,相对于select和poll来说具有更高的效率和易用性。传统的select以及poll的效率会因为 socket数量的线形递增而导致呈二次乃至三次方的下降,而epoll的性能不会随socket数量增加而下降。标准的linux-2.4.20内核不支持

2016-11-29 00:22:58 863

原创 SetWindowPos 某些属性的坑

实现界面的岁某个窗口的大小变化 而变化的功能但是 当最后一个属性参数 设置了SWP_SHOWWINDOW和SWP_HIDEWINDOW标志,则窗口不能被移动和改变大小所以 如果窗口要随时变化最好不要加这2个参数参考 SetWindowPos函数详解

2016-11-22 01:14:07 569

原创 实现窗口的始终置顶

实现窗口置顶,并且能在窗口后面进行鼠标操作 typedef void (WINAPI *PSWITCHTOTHISWINDOW) (HWND,BOOL); PSWITCHTOTHISWINDOW SwitchToThisWindow; HMODULE hUser32=GetModuleHandle(_T("user32")); SwitchToThisWindow=(P

2016-11-22 01:08:20 4222 1

原创 SECURITY_ATTRIBUTES 实现最低权限的问题

SECURITY_ATTRIBUTES 实现最低权限 主要用于多进程之间共享数据空间的句柄的权限设置, 若高权限 进程 设置默认值 NULL,对于低权限进程来说 可能无法读取。参考文章

2016-11-22 01:05:12 3288

原创 windows/mfc实现窗口隐藏同时 在任务栏上无图标显示功能

当实现窗体隐藏时,同时让任务栏隐藏

2016-11-22 00:50:54 3886

原创 windows/mfc 隐藏窗口接受消息的问题

实现隐藏窗口 的显示我要实现的功能是 程序一直将窗口隐藏起来,当接收到其他程序发送过来的消息之后 就显示,执行任务,完成之后继续隐藏起来。

2016-11-22 00:43:09 2783

原创 vc++/mfc截图 保存和显示

mfc vc++ 截取图片显示图片保存图片

2016-11-22 00:12:28 5743 1

原创 shell脚本读取配置文件

前段时间 要做一个脚本,实现ftp自动下载,对方的url地址和给我的ftp账号、密码会随后变化,所以都设置在配置文件中。在shell脚本中读取配置文件使用 cat ,grep,awk和sed比如在 eaxmple.ini中有ftp_url = 127.0.0.1:223ftp_user = adminftp_password = ftp~!@#$%则在shell脚本中读取配置 FTP_

2016-08-06 19:18:48 18731

转载 new 和operator new

1、http://blog.csdn.net/wudaijun/article/details/9273339 2、http://www.cnblogs.com/luxiaoxun/archive/2012/08/10/2631812.html

2016-08-01 10:26:43 449

原创 项目注意规范

前几天公司的大牛架构师,给我们这些新来的员工对代码和项目的规范做了一个讲座,之后总结一二,说说新的体会吧。一、代码要求 1、好代码 好代码的要求,清新,自然,易读,易懂。 具体而言: 1)命名要规范,加注释。 类的命名: 类名采用英语名词,一般1到2个单词,如果超过,则要采用继承; 单词首

2016-07-24 19:33:34 355

重新实现popen和system函数

重写系统提供的system和popen函数,在fork之后关闭所有的从3到最大的文件描述符

2018-05-27

空空如也

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

TA关注的人

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