自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 收藏
  • 关注

转载 http-客户端识别与cookie机制

web服务器可能会同时与数千个不同的客户端同时进行对话。这些服务器通常要记录下他们在与谁交谈。而不是认为所有的请求都来自匿名的客户端。本章讨论服务器识别客户端的技巧。个性化接触Http是一个匿名、无状态的请求/响应协议。web服务器几乎没有什么信息可以用来判断哪个用户发送的请求,也无法记录来访用户的访问序列。本章对http识别用户的几种技巧进行了总结。一般分为以下几种。

2016-06-30 23:32:21 277

转载 Http客户端识别的方法

Http用户识别的机制方法分为如下几种:1)、承载用户身份的HTTP首部2)、客户端IP地址跟踪,根据客户端IP地址进行识别3)、用户登录,用认证方式设别用户4)、使用胖URL,一种在URL中嵌入识别信息的技术5)、Cookie,一种持久化身份设别技术 关于HTTP首部的相关信息在下列表格中列出。HTTP首部 

2016-06-30 23:31:05 2681

转载 C++用new和不用new创建类对象区别

起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似

2016-06-30 23:21:37 338

转载 海量数据找中位数

腾讯二面问到,但不是中位数。先科普了百分位数的概念,然后求50%,80%的百分位数。=========================================================腾讯一面问到了,用的算法导论中的Kth算法,期望时间复杂度为O(n)。后来想了想,万一数据多的来根本不能一次读入内存,这个时候该如何解决呢?题目如下:只有2G内存的pc机,在

2016-06-30 23:11:38 483

转载 按位反转无符号字符

以下转自:http://www.xuebuyuan.com/1709778.html题目:一个unsigned char,记为src,把其中的字节高位和低位全部互换 分析:想找出src中某一位的bit,肯定是要拿一个该位为1其他位为0的char,记为flag,和他进行&,取出该位的值,记为onebit。把该onbit左移(或者右移,看是否现在已经到了中间

2016-06-30 22:18:03 709

转载 正排索引和倒排索引

正排索引(正向索引)正排表是以文档的ID为关键字,表中记录文档中每个字的位置信息,查找时扫描表中每个文档中字的信息直到找出所有包含查询关键字的文档。正排表结构如图1所示,这种组织方法在建立索引的时候结构比较简单,建立比较方便且易于维护;因为索引是基于文档建立的,若是有新的文档加入,直接为该文档建立一个新的索引块,挂接在原来索引文件的后面。若是有文档删除,则直接找到该文档号文档对应的

2016-06-29 11:02:05 466

转载 抽象类 & 接口& 虚函数&纯虚函数&非虚函数

抽象类 & 接口一、抽象类:      抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。二、接口:      接口是引用类型的,类似于类,和抽象

2016-06-28 20:20:27 223

转载 c++中抽象类与接口的区别

其实对抽象类与接口的区别一直是搞不太清楚,最近正在学习《设计模式》,期间用到了很多c++多态的知识。这是才恍然发现,是应该整理下这方面的知识了。但在翻阅书本、上网查阅资料之际,发现有篇文章总结的不错。于是,转载(博主勿怪)并稍作修改如下:抽象类:抽象类是特殊的类,只是不能被实例化(将定义了一个或多个纯虚函数的类称为抽象类);除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普

2016-06-28 20:18:48 388

转载 ctrl+alt+F1~6进入不了字符界面,黑屏的解决办法

ubuntu系统,我是ubuntu14.04本来想装cuda,需要在字符界面下装,奈何按ctrl+alt+F1就黑屏了,按ctrl+alt+F7又可以正常回到图形界面,网上查了很多,有的方法也试过,都解决不了。在别人的帮助下,最终解决了,以下为解决办法:1.启动系统,开机后不停的按shift键,进入grub界面(有时一次还进去不了,没关系,多尝试几次,我是尝试了3次才成功进入

2016-06-28 11:03:10 4451 1

原创 实现strcpy函数

实现strcpy函数#include "assert.h"#include "windows.h"char* my_strcpy(char *dst,const char*src){ assert(dst!=NULL); assert(src!=NULL); char *ret = dst; //while(*dst++=*src++);//要判断结尾 while((*d

2016-06-25 22:05:12 235

转载 一维数组的初始化问题

以下转自:http://blog.csdn.net/caryaliu/article/details/8753269参考了:http://bbs.csdn.net/topics/310136813http://blog.csdn.net/sibylle/article/details/2026915个人新博客,欢迎关注:http://liumh.com一.

2016-06-24 16:48:01 487

转载 空类大小和虚函数的大小

1、为何空类的大小不是0呢?为了确保两个不同对象的地址不同,必须如此。类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.2、请看下面的类:class A{ virtual void f(){} };class B:pub

2016-06-24 13:35:09 1397

转载 基数排序的性能优化

以下转自:http://blog.csdn.net/yutianzuijin/article/details/22876017最近需要对大小在0到100万内的很多数组进行排序,每一个数组的长度都不固定,短则几十,长则几千。为了最快完成排序,需要将数组大小和数据范围考虑进去。由于快速排序是常规排序中速度最快的,首选肯定是它。但是数组中数据的范围固定,可以考虑基数排序。为了使排序耗时尽

2016-06-24 13:17:48 578

转载 基数排序

一. 算法描述基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为两个过程:(1)分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中)(2)收集,再将放置在0~9号桶中的数据按顺序放到数组中重复(1)(2)过程,从个位到最高位(比如32位无符号整形最大数4294967296,最高位10位)以【52

2016-06-24 12:21:59 208

转载 实现strcpy函数

以下转自:http://blog.csdn.net/gpengtao/article/details/7464061/大家一般认为名不见经传strcpy函数实现不是很难,流行的strcpy函数写法是:[cpp] view plain copy char *my_strcpy(char *dst,const char *src)  {      assert(

2016-06-24 10:45:41 359

转载 链接指示符extern “C”

链接指示符extern “C”extern“C”的使用方式如果程序员希望调用其他程序设计语言(尤其是C)写的函数,那么,调用函数时必须告诉编译器使用不同的要求。例如,当这样的函数被调用时,函数名或参数排列的顺序可能不同,无论是C++函数调用它,还是用其他语言写的函数调用它。程序员用链接指示符(linkage directive)告诉编译器,该函数是用其他的程序设计语言编写的,链接指示符

2016-06-23 21:50:56 602

原创 计算二叉树的深度+判断二叉树是否是平衡二叉树

计算二叉树的深度判断二叉树是否是平衡二叉树

2016-06-23 09:22:07 266

转载 转换到 COFF 期间失败

终极解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资料,

2016-06-22 21:03:29 304

原创 “fatal error C1083 ”无法打开包括文件

步骤1:定位报“fatal error C1083: ”错误的文件,找到它所在的目录。步骤2:添加该项目的附加路径 。如图所示:1)右键查看该项目的属性2)点击配置属性——〉 C/C++ ——〉 常规 ——〉 附加包含目录——〉将报错文件所在目录添加进去3) 将项目的本地路径替换为工程相对路径工程根目录为:$(ProjectDir)其子目录inc为:$(ProjectDir

2016-06-22 20:38:26 9329

转载 c++内联函数(inline)及内联函数的使用及注意点

以下转自:http://www.jb51.net/article/48622.htm介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如复制代码 代码如下:#define TABLE_COMP(x) ((x)>0?(x):0)就定义了一个宏。为什么要使用宏呢?因为函数的

2016-06-20 16:26:06 7322

转载 const 指针与指向const的指针

当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。      先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。      const int* p; (推荐)      int const* p;      第一种可以理解为,p

2016-06-20 15:52:18 183

转载 static作用(修饰函数、局部变量、全局变量)

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variable

2016-06-20 11:49:28 235

转载 C++中的操作符重载

以下转自:http://www.cnblogs.com/BeyondAnyTime/archive/2012/09/01/2666570.html一、什么是操作符重载操作符重载可以分为两部分:“操作符”和“重载”。说到重载想必都不陌生了吧,这是一种编译时多态,重载实际上可以分为函数重载和操作符重载。运算符重载和函数重载的不同之处在于操作符重载重载的一定是操作符。我们不妨先直

2016-06-20 11:22:03 199

转载 C++的四种强制类型转换

以下转自:http://www.cnblogs.com/zhangsf/archive/2013/09/09/3309773.htmlC++的四种强制类型转换,所以C++不是类型安全的。分别为:static_cast , dynamic_cast , const_cast , reinterpret_cast为什么使用C风格的强制转换可以把想要的任何东西转换成合乎心意的类型

2016-06-20 11:07:04 162

转载 深入理解C++的动态绑定和静态绑定

以下转自:http://blog.csdn.net/chgaowei/article/details/6427731为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定

2016-06-20 10:33:49 187

转载 缓冲区溢出攻击

缓冲区溢出攻击http://www.cnblogs.com/fanzhidongyzby/archive/2013/08/10/3250405.html缓冲区溢出攻击实验  http://blog.163.com/jw_chen_cs/blog/static/20221214820124119642246/

2016-06-17 16:03:40 235

转载 对寄存器ESP和EBP的一些理解(函数执行之前还做了什么事情?)

转自:http://blog.csdn.net/wangkr111/article/details/41315629PS:EBP是当前函数的存取指针,即存储或者读取数时的指针基地址;ESP就是当前函数的栈顶指针。每一次发生函数的调用(主函数调用子函数)时,在被调用函数初始时,都会把当前函数(主函数)的EBP压栈,以便从子函数返回到主函数时可以获取EBP。下面是按

2016-06-17 15:45:53 242

转载 HTTP1.0和HTTP1.1的区别

HTTP简介web浏览器和服务器之类的交互过程必须遵守的协议.他是tcp/ip中的一个应用协议。用来协议数据交换过程和数据本身的格式.主要的有HTTP/1.0和HTTP1.1. HTTP/1.0和HTTP/1.1都把TCP作为底层的传输协议。HTTP客户首先发起建立与服务器TCP连接。一旦建立连接,浏览器进程和服务器进 程就可以通过各自的套接字来访问TCP。如前所述,客户端套接字是

2016-06-16 16:25:38 768

转载 Linux的SOCKET编程详解

Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX

2016-06-16 14:14:23 374

转载 memset用法详解

转自:http://www.cnblogs.com/lebronjames/archive/2010/07/04/1770987.html功 能  将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,  块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作,  其返回值为指向S的指针。 void *memset(void *s,

2016-06-16 10:55:11 170

转载 C++中引用和指针的区别

下面用通俗易懂的话来概述一下:指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义:引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用。见下图,所示引用的含义:2、指针和引用的区别

2016-06-15 10:58:44 244

转载 DNS原理总结及其解析过程详解(递归查询+迭代查询)

一、域名系统1、域名系统概述        域名系统DNS(Domain Name System)是因特网使用的命名系统,用来把便于人们使用的机器名字转换成为IP地址。域名系统其实就是名字系统。为什么不叫“名字”而叫“域名”呢?这是因为在这种因特网的命名系统中使用了许多的“域(domain)”,因此就出现了“域名”这个名词。“域名系统”明确地指明这种系统是应用在因特网中。       

2016-06-15 10:49:58 36417 1

原创 判断一个括号字符串是否匹配正确

判断一个括号字符串是否匹配正确,如果括号有多种,怎么做?#include#include#includeusing namespace std; bool IsMatch(string str){ int i=0; stack stk; bool flag=true; while(i<str.size()&&flag==true) {

2016-06-15 09:44:18 810

转载 求有环单链表中的环长、环起点、链表长

求有环单链表中的环长、环起点、链表长1.判断单链表是否有环  使用两个slow, fast指针从头开始扫描链表。指针slow 每次走1步,指针fast每次走2步。如果存在环,则指针slow、fast会相遇;如果不存在环,指针fast遇到NULL退出。  就是所谓的追击相遇问题:    2.求有环单链表的环长   在环上相遇后,记录第一次相遇点为Pos,之后指针slow继

2016-06-14 22:13:06 166

原创 两个线程同时做100次a++

全局变量int a=0;现用两个线程执行100次a++,求a的最终值#include "stdafx.h"#include #include //子线程函数 int a=0;unsigned int __stdcall ThreadFun(PVOID pM) { int i=0; printf("线程ID号为%4d的子线程说:Hello World\n",

2016-06-14 21:34:41 3549

转载 C++中虚函数(virtual function)到底有多慢

本文地址:http://blog.csdn.net/hengyunabc/article/details/7461919虚函数为什么慢,cpu分支预测技术,虚函数到底要调用哪些汇编,虚函数实现的简单图示,虚函数不能内联,印象中经常看到有人批评C++的虚函数很慢,但是虚函数为什么慢,虚函数到底有多慢呢?一、理论分析虚函数慢的原因主要有三个:多了几条汇编指令(运行时得到对应类的

2016-06-14 21:12:24 1419 1

转载 为什么构造函数不能声明为虚函数,析构函数可以

构造函数不能声明为虚函数,析构函数可以声明为虚函数,而且有时是必须声明为虚函数。不建议在构造函数和析构函数里面调用虚函数。构造函数不能声明为虚函数的原因是:1 构造一个对象的时候,必须知道对象的实际类型,而虚函数行为是在运行期间确定实际类型的。而在构造一个对象时,由于对象还未构造成功。编译器无法知道对象 的实际类型,是该类本身,还是该类的一个派生类,或是更深层次的派生类。无法确定。

2016-06-14 21:04:12 208

转载 探究论文检测系统抄袭的算法原理等技术研究

以下转自:http://www.zaojiance.com/news/news-detail-2014-04-23-16-22-05.html摘 要:论文抄袭的检测是知识产权保护中一项重要的内容,已有众多的识别方法和系统。本文从抄袭检测的技术概述定义、数字指纹和词频统计两大类技术和方法和抄袭剽窃识别系统等方面为基本思路,对该领域中已提出的主要研究方案进行了分类阐述和比较分析,总

2016-06-14 17:14:20 5866

原创 判断一个数是否是2的整数次幂

判断一个数是否是2的整数次幂 一个数如果是2的整数幂,那么它的2进制表示里面肯定只有一个1, 并且是最高位,当然不考虑负数。bool isPower(int n){ if(n<=1) return false; if((n&(n-1))==0) return true; return false;}void main() { bool a=isP

2016-06-14 16:53:04 453

转载 C++中的单例模式

C++中的单例模式http://blog.csdn.net/hackbuteer1/article/details/7460019c++ 单例模式下的实例自动销毁(单例自动回收器)(上文的测试代码)http://blog.csdn.net/roy1261/article/details/51425987

2016-06-13 11:10:57 181

空空如也

空空如也

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

TA关注的人

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