自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

飞翔在北京的博客

小陈醋的代码进阶之路

  • 博客(84)
  • 问答 (1)
  • 收藏
  • 关注

转载 如何定义和实现一个类的成员函数为回调函数

回调函数,就是由你自己写的,你需要调用另外一个函数,而这个函数的其中一个参数,就是你的这个回调函数名。这样,系统在必要的时候,就会调用你写的回调函数,这样你就可以在回调函数里完成你要做的事。  B.如何定义和实现一个类的成员函数为回调函数  要定义和实现一个类的成员函数为回调函数需要做三件事:  a.声明;  b.定义;  c.设置触发条件,就是在你的函数中

2015-11-22 20:43:34 592

转载 pragma pack(非常有用的字节对齐用法说明)

强调一点:#pragma pack(4)typedef struct{    char buf[3];    word a;}kk;#pragma pack()对齐的原则是min(sizeof(word ),4)=2,因此是2字节对齐,而不是我们认为的4字节对齐。这里有三点很重要:1.每个成员分别按自己的方式对齐,并能最小

2015-11-16 22:11:24 500

转载 网络爬虫:URL去重策略之布隆过滤器(BloomFilter)的使用

前言:  最近被网络爬虫中的去重策略所困扰。使用一些其他的“理想”的去重策略,不过在运行过程中总是会不太听话。不过当我发现了BloomFilter这个东西的时候,的确,这里是我目前找到的最靠谱的一种方法。  如果,你说URL去重嘛,有什么难的。那么你可以看完下面的一些问题再说这句话。关于BloomFilter:  Bloom filter 是由 Ho

2015-11-12 00:04:13 5607

转载 几种常用的操作系统进程调度算法

常用的操作系统进程调度算法大致有:先来先服务调度算法,短进程优先调度算法,优先级调度算法(抢占式调度算法和非抢占式调度算法),基于时间片的轮转调度算法。一、先来先服务和短作业(进程)优先调度算法1.先来先服务调度算法先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。当在作业调度中采用该算法时,每次调度都是从后备作业队列中

2015-11-11 21:41:17 766

转载 求二叉树的宽度

2)求二叉树的宽度我们可以把二叉树中每层的节点依次放入一个队列中。设置一个变量width用于存储树的宽度。每一层的节点入队时计算该层节点的数目,如果该层次节点的数目大于width的值,那么把该层次节点的数目赋给width.如此,对二叉树按层遍历一遍之后width中保存的就是该二叉树的宽度。int WidthOfTheTree(Node* pRoot){ if(pRoot==NU

2015-11-11 21:16:31 476

转载 逃出迷宫完整算法C++

迷宫图案,白色代表通道,黑色代表墙。 迷宫入口坐标(1,1),出口坐标(8,8)  0 1 2 3 4 5 6 7 8 9  0■■■■■■■■■■  1■□□■□□□■□■  2■□□■□□□■□■  3■□□□□■■□□■  4■□■■■□□□□■  5■□□□■□□□□■  6■□■□□□■□□■  7■□■■■□■■□■  8■■□□□□□□□■

2015-10-13 22:27:33 940

转载 C++中的explicit关键字

在C++程序中很少有人去使用explicit关键字,不可否认,在平时的实践中确实很少能用的上。再说C++的功能强大,往往一个问题可以利用好几种C++特性去解决。但稍微留心一下就会发现现有的MFC库或者C++标准库中的相关类声明中explicit出现的频率是很高的。了解explicit关键字的功能及其使用对于我们阅读使用库是很有帮助的,而且在编写自己的代码时也可以尝试使用。既然C++语言提供这种特性

2015-10-10 08:39:53 301

原创 华为2013年机试题

题目一:子串分离 题目描述:   通过键盘输入任意一个字符串序列,字符串可能包含多个子串,子串以空格分隔。请编写一个程序,自动分离出各个子串,并使用’,’将其分隔,并且在最后也补充一个’,’并将子串存储。 如果输入“abc def gh i        d”,结果将是abc,def,gh,i,d,  要求实现函数:   void DivideString(const ch

2015-10-09 22:54:00 347

转载 2014届华为校园招聘机试题

文章来源:http://blog.csdn.net/hackbuteer1/article/details/11132567华为2014校园招聘的机试题目和2013年的完全一样。一、题目描述(60分):通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abc

2015-10-09 11:05:15 401

转载 C++中typename和class的区别

在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为: template...... 在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typ

2015-10-08 22:22:07 559

转载 最短摘要生成算法

int FindAbstract(vector&sent,vector &keys,vector &rst) { map keyMp; set keySt; int beg = 0,end = 0,s = 0,t = 0,MinLen = 0x7fffffff; queue pos;//将所有关键词的下标放

2015-10-08 16:42:20 403

转载 strstr的实现

函数名: strstr 功  能: 在串中查找指定字符串的第一次出现 用  法: char *strstr(char *str1, char *str2); 程序例:  char* strstr ( const char * str1, const char * str2 ){char *cp = (char *) str1;//cast const ->varia

2015-10-06 22:30:34 297

转载 常用10个LINUX命令说明

LS命令-作用:显示目录内容,类似DOS下的DIR-格式:LS【options】【filename】-常用参数:  >-a:all,不隐藏任何以"."字符开始的文件  >-l:使用较长的格式列出信息  >-r:按照文件名的逆序打印输出  >-F:加上文件类型的指示符  ls -lF | grep /  过滤  man ls          查询ls的帮助文件

2015-10-06 21:31:58 8104 1

转载 哈希表及处理冲突的方法

文章来源:http://blog.sina.com.cn/s/blog_6fd335bb0100v1ks.html哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表称为哈希表。这种方法的基本思想是:首先在元素的关键字k和元素的存储位置p之间建立一个对应关系f,使得p=f(k),f称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为f(k)的单元;以后当查找关键字为k的元素时,

2015-10-06 10:57:55 372

转载 友元实例:友元类及友元函数

学习了c++这么久,一直没有对友元进行了解,据说友元不是特别好用(据说,不是我说的),因此直到今天才去了解。其实友元确实不是很常用,但友元功能确实很实用,它不但能够释放类中的非公有成员,同时还能保证了类的封装性。用户可以有选择为具体的类或函数赋予“通行证”。还是比较灵活的。比如:某个类去访问另一个类的私有成成员,或者一个函数去访问某个类的私有成员等等,都可以使用友元来实现。       下面就

2015-09-29 22:14:20 392

转载 C++中智能指针的设计和使用

原文地址:http://blog.csdn.net/hackbuteer1/article/details/7561235     智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。智能指针类将一个计数器与类指向的对象相关联,引用计

2015-09-29 22:13:18 200

转载 进程线程及堆栈关系的总结

问题1. local 变量的压栈和出栈过程void func1(){    int a = 0;    int b = 0;}系统中有一个栈顶指针,每次分配和回收local 变量时,其实就是移动栈指针。2. static local变量的分配风险void func2(){    static int a = 0;}这个变量a可能会被分配多次,因为如果

2015-09-29 10:08:22 496

转载 C++中的static关键字 (转载)

文章来源:http://blog.csdn.net/hackbuteer1/article/details/7487694C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static

2015-09-28 16:51:05 253

原创 写一个函数,完成内存之间的拷贝。[考虑问题是否全面]

#include "stdafx.h"#include #include #include void *memmove(void *dest, const void *src, size_t count){ assert((dest != NULL) && (src != NULL)); //安全检查 assert(count > 0); char *psrc =

2015-09-28 15:30:28 1982 1

转载 迅雷2012校园招聘笔试题

文章来源:http://blog.csdn.net/hackbuteer1/article/details/74542521、微机中1K字节表示的二进制位数是()A、1000     B、0X1000   C、1024     D、0X10242、设C语言中,一个int型数据在内存中占2个字节,则unsigned int 型数据的取值范围为()A、0--- 255     B、0-

2015-09-20 20:58:02 416

转载 用位运算实现四则运算之加减乘除

听同学百度二面中,不准用四则运算操作符来实现四则运算。一想就想到了计算机组成原理上学过的。位运算的思想可以应用到很多地方,这里简单的总结一下用位运算来实现整数的四则运算。加法运算:[cpp] view plaincopyint AddWithoutArithmetic(int num1,int num2)  {      if(num2==0) return num

2015-09-18 16:28:51 332

转载 memset()的效率以及源码分析

文章来源:http://blog.csdn.net/hackbuteer1/article/details/7343189void *memset(void *s, int ch, size_t n);作用:将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作。不知道有没有像我一样把memset

2015-09-17 12:03:59 436

转载 如何用两个队列实现一个栈,并分析有关栈操作的运行时间。

栈的操作主要有:入栈,出栈,返回栈顶元素,返回栈长度以及判断栈是否为空。  若用两个queue实现(可以定义成queue的数组queue q[2]),可以增加一个currentIndex来指向当前选中的queue。入栈操作可以直接把元素加到queue里,即  queue[currentIndex].push(element),时间复杂度为O(1),出栈操作要复杂一些,还是因为栈和队列元素的出入

2015-09-17 09:28:12 675

转载 大端模式和小端模式

文章来源:http://blog.csdn.net/hackbuteer1/article/details/7722667#comments在 各种计算机体系结构中,对于字节、字等的存储机制有所不同,因而引发了计算机 通信领 域中一个很重要的问题,即通信双方交流的信息单元(比特、字节、字、双字等等)应该以什么样的顺序进行传送。如果不达成一致的规则,通信双方将无法进行正 确的编/译码从而导致

2015-09-14 09:17:36 293

转载 微策略2011校园招聘笔试题(找出数组中两个只出现一次的数字)

1、8*8的棋盘上面放着64个不同价值的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0),一个人初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应棋盘上的礼物,结束位置在棋盘的右下角,请设计一个算法使其能够获得最大价值的礼物。[cpp] view plaincopy//经典的动态规划  //dp[i][j] 表示到棋盘位置(i,j)上可以得到的最大礼

2015-09-13 19:57:40 488

转载 经典面试题

文章来源:http://blog.csdn.net/hackbuteer1/article/details/68860211、编程实现两个正整数的除法,当然不能用除法操作符。[cpp] view plaincopy//编程实现两个正整数的除法,当然不能用除法操作符  int div(const int x, const int y)  {      int le

2015-09-13 17:24:08 326

转载 任意长度的高精度大整数加法

文章来源:http://blog.csdn.net/hackbuteer1/article/details/6709101方法:这里用了数据结构栈,实际上栈更方便实现高精度加法。步骤:1、第一个数据加数按输入顺序(高位到低位)入栈1。此时栈顶为最低位            2、‍第二个数据加数按输入顺序(高位到低位)入栈2。此时栈顶为最低位            3、将栈1、栈

2015-09-13 11:12:26 521

转载 c++模板类学习

1、模板的概念我们已经学过重载(Overloading),对重载函数而言,C++的检查机制能通过函数参数的不同及所属类的不同。正确的调用重载函数。例如,为求两个数的最大值,我们定义MAX()函数需要对不同的数据类型分别定义不同重载(Overload)版本。//函数1.int max(int x,int y){  return(x>y)?x:y ; }//函数2.float

2015-09-11 17:02:51 290

转载 程序在内存中的分布

在现代的操作系统中,当我们说到内存,往往需要分两部分来讲:物理内存和虚拟内存。从硬件上讲,虚拟空间是CPU内部的寻址空间,位于MMU之前,物理空间是总线上的寻址空间,是经过MMU转换之后的空间。一般我们所说的程序在内存中的分布指的就是程序在虚拟内存中的存储方式。从低地址到高地址,可分为下面几段: 预留内存地址(操作系统维护的内存地址,不可访问) 程序代码区(只读,存

2015-09-11 16:44:49 248

转载 亚信联创2011.9.17招聘会笔试题

3、const 有什么用途?(请至少说明两种)答:(1)可以定义 const 常量。(2)const可以修饰函数的参数、返回值,甚至函数的定义体。被const修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。5、下面是交换两个double型数据的函数,       [cpp] view plaincopyvoid swap(

2015-09-11 13:33:55 639

转载 浙江大华2011.10.10校园招聘会笔试题

请写出下面程序的输出结果:(答案在下面)1、[cpp] view plaincopyint count = 3;  int main(void)  {      int i, sum, count = 2;      for(i=0,sum=0; i    {          static int count = 4;          count++;     

2015-09-11 09:17:01 402

转载 静态链接库LIB和动态链接库DLL的区别

静态链接库LIB和动态链接库DLL的区别一、        静态链接库与动态链接库区别静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态

2015-09-11 08:58:56 329

原创 错题(二)

2、[cpp] view plaincopyvoid func(char str[50])  {      printf("A %d B %d ",sizeof(str), strlen(str));  }  int main(void)  {      char stra[] = "HelloWorld";      char *strb = stra;      printf(

2015-09-10 21:02:24 340

原创 删除字符串中多余的空格]给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个

#include char* RemoveExtraSpace(char* str){ if (str == NULL) { return NULL; } char* pstr = str; int Newindex = 0; bool PreSpace = true;//加一个bool值,用于判断前一个字符是否为空格,如果

2015-09-07 16:40:27 1731

转载 后缀数组求最长重复子串

问题描述给定一个字符串,求出其最长重复子串例如:abcdabcd最长重复子串是 abcd,最长重复子串可以重叠例如:abcdabcda,这时最长重复子串是 abcda,中间的 a 是被重叠的。直观的解法是,首先检测长度为 n - 1 的字符串情况,如果不存在重复则检测 n - 2, 一直递减下去,直到 1 。这种方法的时间复杂度是 O(N * N * N),其中包括三部

2015-09-02 09:52:48 522

转载 判断一个字符串是否是合法IP地址

思路:输入字符串的时候,把分隔符“.”读取出来,然后判断分隔符旁边的数字是否在0~~255之间,然后判断是否合法。#include "stdafx.h"#include #include using namespace std;bool IsValidIp(char* str){ if(str == NULL) { return false; } char a[40

2015-08-31 15:31:50 8994 3

转载 多客户端服务器网络编程

这是一个基于windows的,用C++编写的客户端服务器程序,适合初学者,高手误入.源码必共享思路是这样的.启动服务器,服务器启动后会创建一个子线程,用于向客户端发送信息.用一个死循环用于接收客户端的请求,客户端请求成功后,会将客户端的连接保存到一个集合中,下面会详细介绍这个保存客户端连接的类.客户端连接成功后,服务器会创建一个子线程用于接收客户端的信息,客户端同样也会创建一个子线程接收服

2015-08-29 17:19:08 466

原创 错题

从下列函数原形看,用GCC编译时,返回值类型为int的函数有?char F1(int n);int F2(char n);F3(int n);int *F4(int n);答案: BC,(函数的默认返回值类型为int)二叉树是一种树形结构,每个节点至多有两颗子树,下列一定是二叉树的是()红黑树B树AVL树B+树答案:A(红黑树)

2015-08-27 14:53:02 572

转载 c++多线程同步使用的对象

转自:http://blog.csdn.net/gukesdo/article/details/6857249线程的同步Critical section(临界区)用来实现“排他性占有”。适用范围是单一进程的各线程之间。它是:·         一个局部性对象,不是一个核心对象。·         快速而有效率。·         不能够同时有一个以上的cri

2015-08-24 15:45:01 353

转载 使用PostThreadMessage向工作线程发送消息

把window线程间传送消息仔细的看了一遍,觉得以前的理解很不深刻。说一说对PostThreadMessage的理解。 PostThreadMessage是一个线程体发送一个消息到指定的线程ID,其原型如下: BOOL PostThreadMessage(                             DWORD idThread,

2015-08-24 15:09:36 627

空空如也

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

TA关注的人

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