
面试
文章平均质量分 73
wyq_tc25
这个作者很懒,什么都没留下…
展开
-
链接指示符extern “C”
链接指示符extern “C”extern“C”的使用方式如果程序员希望调用其他程序设计语言(尤其是C)写的函数,那么,调用函数时必须告诉编译器使用不同的要求。例如,当这样的函数被调用时,函数名或参数排列的顺序可能不同,无论是C++函数调用它,还是用其他语言写的函数调用它。程序员用链接指示符(linkage directive)告诉编译器,该函数是用其他的程序设计语言编写的,链接指示符转载 2016-06-23 21:50:56 · 700 阅读 · 0 评论 -
对寄存器ESP和EBP的一些理解(函数执行之前还做了什么事情?)
转自:http://blog.youkuaiyun.com/wangkr111/article/details/41315629PS:EBP是当前函数的存取指针,即存储或者读取数时的指针基地址;ESP就是当前函数的栈顶指针。每一次发生函数的调用(主函数调用子函数)时,在被调用函数初始时,都会把当前函数(主函数)的EBP压栈,以便从子函数返回到主函数时可以获取EBP。下面是按转载 2016-06-17 15:45:53 · 285 阅读 · 0 评论 -
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 · 850 阅读 · 0 评论 -
Linux的SOCKET编程详解
Linux的SOCKET编程详解1. 网络中进程之间如何通信进 程通信的概念最初来源于单机系统。由于每个进程都在自己的地址范围内运行,为保证两个相互通信的进程之间既互不干扰又协调一致工作,操作系统为进程通信提供了相应设施,如UNIX BSD有:管道(pipe)、命名管道(named pipe)软中断信号(signal)UNIX转载 2016-06-16 14:14:23 · 427 阅读 · 0 评论 -
判断一个点是否在指定区域内
http://www.360doc.com/content/12/1105/14/7662927_245870913.shtml转载 2016-07-01 18:13:17 · 2393 阅读 · 0 评论 -
C++以对象管理资源
以下转自:http://www.cnblogs.com/kane0526/p/3612428.html先看下面一段代码:class Node {};Node* CreateNode(){ }void Solve(){ Node *p=CreateNode(); //调用CreateNode函数 ... delete p;转载 2016-07-01 17:01:54 · 516 阅读 · 0 评论 -
bfptr算法
以下转自:http://noalgo.info/466.htmlBFPRT算法是解决从n个数中选择第k大或第k小的数这个经典问题的著名算法,但很多人并不了解其细节。本文将首先介绍求解这个第k小数字问题的几个思路,然后重点介绍在最坏情况下复杂度仍然为O(n)的BFPRT算法。一 基本思路关于选择第k小的数字有许多方法,其效率和复杂度各不一样,可以根据实际情况进行选转载 2016-07-01 15:33:13 · 4359 阅读 · 0 评论 -
服务器TIME_WAIT和CLOSE_WAIT详解和解决办法
以下转自:http://blog.youkuaiyun.com/shootyou/article/details/6622226 昨天解决了一个HttpClient调用错误导致的服务器异常,具体过程如下:http://blog.youkuaiyun.com/shootyou/article/details/6615051里头的分析过程有提到,通过查看服务器网络状态检测到服务器有大量的CLOSE转载 2016-07-01 12:41:09 · 352 阅读 · 0 评论 -
TCP/IP TIME_WAIT状态原理
TIME_WAIT状态原理----------------------------通信双方建立TCP连接后,主动关闭连接的一方就会进入TIME_WAIT状态。客户端主动关闭连接时,会发送最后一个ack后,然后会进入TIME_WAIT状态,再停留2个MSL时间(后有MSL的解释),进入CLOSED状态。下图是以客户端主动关闭连接为例,说明这一过程的。转载 2016-07-01 12:34:22 · 321 阅读 · 0 评论 -
指定文件中查找一个字符串并显示该字符串出现的次数
以下转自:http://bbs.youkuaiyun.com/topics/110120343#include "iostream"#include #include using namespace std;int CountSubString(string const& str, string const& substr){ int nCount = 0; string::si转载 2016-07-01 10:47:27 · 3913 阅读 · 0 评论 -
指针函数与函数指针、指针的指针与纸箱指针数组的指针
以下转自:http://www.cnblogs.com/gmh915/archive/2010/06/11/1756067.html一、在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,首先它们之间的定义:1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符转载 2016-07-01 10:26:13 · 317 阅读 · 0 评论 -
缓冲区溢出攻击
缓冲区溢出攻击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 · 256 阅读 · 0 评论 -
多线程还是多进程的选择及区别
原文:http://blog.youkuaiyun.com/lishenglong666/article/details/8557215 最原始的博主我没有找到,只能把我从何处转的此篇博文的链接发出来。感觉这篇博文写的很棒,特此转载了鱼还是熊掌:浅谈多进程多线程的选择关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考转载 2016-07-03 23:46:14 · 950 阅读 · 1 评论 -
计算二叉树的深度+判断二叉树是否是平衡二叉树
计算二叉树的深度判断二叉树是否是平衡二叉树原创 2016-06-23 09:22:07 · 313 阅读 · 0 评论 -
c++内联函数(inline)及内联函数的使用及注意点
以下转自:http://www.jb51.net/article/48622.htm介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如复制代码 代码如下:#define TABLE_COMP(x) ((x)>0?(x):0)就定义了一个宏。为什么要使用宏呢?因为函数的转载 2016-06-20 16:26:06 · 7419 阅读 · 0 评论 -
const 指针与指向const的指针
当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p; 第一种可以理解为,p转载 2016-06-20 15:52:18 · 212 阅读 · 0 评论 -
static作用(修饰函数、局部变量、全局变量)
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variable转载 2016-06-20 11:49:28 · 272 阅读 · 0 评论 -
C++中的操作符重载
以下转自:http://www.cnblogs.com/BeyondAnyTime/archive/2012/09/01/2666570.html一、什么是操作符重载操作符重载可以分为两部分:“操作符”和“重载”。说到重载想必都不陌生了吧,这是一种编译时多态,重载实际上可以分为函数重载和操作符重载。运算符重载和函数重载的不同之处在于操作符重载重载的一定是操作符。我们不妨先直转载 2016-06-20 11:22:03 · 224 阅读 · 0 评论 -
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 · 186 阅读 · 0 评论 -
C++中引用和指针的区别
下面用通俗易懂的话来概述一下:指针-对于一个类型T,T*就是指向T的指针类型,也即一个T*类型的变量能够保存一个T对象的地址,而类型T是可以加一些限定词的,如const、volatile等等。见下图,所示指针的含义:引用-引用是一个对象的别名,主要用于函数参数和返回值类型,符号X&表示X类型的引用。见下图,所示引用的含义:2、指针和引用的区别转载 2016-06-15 10:58:44 · 278 阅读 · 0 评论 -
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 · 209 阅读 · 0 评论 -
深入理解C++的动态绑定和静态绑定
以下转自:http://blog.youkuaiyun.com/chgaowei/article/details/6427731为了支持c++的多态性,才用了动态绑定和静态绑定。理解他们的区别有助于更好的理解多态性,以及在编程的过程中避免犯错误。需要理解四个名词:1、对象的静态类型:对象在声明时采用的类型。是在编译期确定的。2、对象的动态类型:目前所指对象的类型。是在运行期决定转载 2016-06-20 10:33:49 · 231 阅读 · 0 评论 -
TCP的三次握手(建立连接)和四次挥手(关闭连接)
参照:http://course.ccniit.com/CSTD/Linux/reference/files/018.PDFhttp://hi.baidu.com/raycomer/item/944d23d9b502d13be3108f61 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流量控制什么是窗口?连接建立时,各端分配一块缓冲区用转载 2016-07-05 00:03:14 · 450 阅读 · 0 评论 -
http-客户端识别与cookie机制
web服务器可能会同时与数千个不同的客户端同时进行对话。这些服务器通常要记录下他们在与谁交谈。而不是认为所有的请求都来自匿名的客户端。本章讨论服务器识别客户端的技巧。个性化接触Http是一个匿名、无状态的请求/响应协议。web服务器几乎没有什么信息可以用来判断哪个用户发送的请求,也无法记录来访用户的访问序列。本章对http识别用户的几种技巧进行了总结。一般分为以下几种。转载 2016-06-30 23:32:21 · 311 阅读 · 0 评论 -
Http客户端识别的方法
Http用户识别的机制方法分为如下几种:1)、承载用户身份的HTTP首部2)、客户端IP地址跟踪,根据客户端IP地址进行识别3)、用户登录,用认证方式设别用户4)、使用胖URL,一种在URL中嵌入识别信息的技术5)、Cookie,一种持久化身份设别技术 关于HTTP首部的相关信息在下列表格中列出。HTTP首部转载 2016-06-30 23:31:05 · 2737 阅读 · 0 评论 -
C++用new和不用new创建类对象区别
起初刚学C++时,很不习惯用new,后来看老外的程序,发现几乎都是使用new,想一想区别也不是太大,但是在大一点的项目设计中,有时候不使用new的确会带来很多问题。当然这都是跟new的用法有关的。new创建类对象,使用完后需使用delete删除,跟申请内存类似。所以,new有时候又不太适合,比如在频繁调用场合,使用局部new类对象就不是个好选择,使用全局类对象或一个经过初始化的全局类指针似转载 2016-06-30 23:21:37 · 372 阅读 · 0 评论 -
C++中的单例模式
C++中的单例模式http://blog.youkuaiyun.com/hackbuteer1/article/details/7460019c++ 单例模式下的实例自动销毁(单例自动回收器)(上文的测试代码)http://blog.youkuaiyun.com/roy1261/article/details/51425987转载 2016-06-13 11:10:57 · 206 阅读 · 0 评论 -
把数组排成最小的数
输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。#include #include #include #include #include //for stringstreamusing namespace std; //static bool原创 2016-06-13 10:05:52 · 200 阅读 · 0 评论 -
字符串的全排列和组合算法
以下转自:http://blog.youkuaiyun.com/hackbuteer1/article/details/7462447全排列在笔试面试中很热门,因为它难度适中,既可以考察递归实现,又能进一步考察非递归的实现,便于区分出考生的水平。所以在百度和迅雷的校园招聘以及程序员和软件设计师的考试中都考到了,因此本文对全排列作下总结帮助大家更好的学习和理解。对本文有任何补充之处,欢迎大家指出转载 2016-06-12 22:06:45 · 190 阅读 · 0 评论 -
实现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 · 286 阅读 · 0 评论 -
实现MyString类--构造函数、拷贝构造函数、析构函数、赋值函数、操作符重载函数
实现MyString类--构造函数、拷贝构造函数、析构函数、赋值函数、操作符重载函数#include "stdafx.h"#include #include #include #include using namespace std; class MyString{public: //MyString(void); MyString(const char *原创 2016-06-03 15:55:32 · 2536 阅读 · 1 评论 -
空类大小和虚函数的大小
1、为何空类的大小不是0呢?为了确保两个不同对象的地址不同,必须如此。类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.2、请看下面的类:class A{ virtual void f(){} };class B:pub转载 2016-06-24 13:35:09 · 1468 阅读 · 0 评论 -
基数排序的性能优化
以下转自:http://blog.youkuaiyun.com/yutianzuijin/article/details/22876017最近需要对大小在0到100万内的很多数组进行排序,每一个数组的长度都不固定,短则几十,长则几千。为了最快完成排序,需要将数组大小和数据范围考虑进去。由于快速排序是常规排序中速度最快的,首选肯定是它。但是数组中数据的范围固定,可以考虑基数排序。为了使排序耗时尽转载 2016-06-24 13:17:48 · 622 阅读 · 0 评论 -
基数排序
一. 算法描述基数排序(以整形为例),将整形10进制按每位拆分,然后从低位到高位依次比较各个位。主要分为两个过程:(1)分配,先从个位开始,根据位值(0-9)分别放到0~9号桶中(比如53,个位为3,则放入3号桶中)(2)收集,再将放置在0~9号桶中的数据按顺序放到数组中重复(1)(2)过程,从个位到最高位(比如32位无符号整形最大数4294967296,最高位10位)以【52转载 2016-06-24 12:21:59 · 238 阅读 · 0 评论 -
实现strcpy函数
以下转自:http://blog.youkuaiyun.com/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 · 386 阅读 · 0 评论 -
利用快排找中位数【未完成】
快速排序找中位数int sort(int* R,int low,int high) ; int median1(int *R,int n); int median2(int* R,int low,int high); const int mmax = 10000001; // 9999; int a[mmax] = {1, 2, 4, 6, 3,原创 2016-06-02 10:19:05 · 619 阅读 · 0 评论 -
c++中抽象类与接口的区别
其实对抽象类与接口的区别一直是搞不太清楚,最近正在学习《设计模式》,期间用到了很多c++多态的知识。这是才恍然发现,是应该整理下这方面的知识了。但在翻阅书本、上网查阅资料之际,发现有篇文章总结的不错。于是,转载(博主勿怪)并稍作修改如下:抽象类:抽象类是特殊的类,只是不能被实例化(将定义了一个或多个纯虚函数的类称为抽象类);除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普转载 2016-06-28 20:18:48 · 408 阅读 · 0 评论 -
抽象类 & 接口& 虚函数&纯虚函数&非虚函数
抽象类 & 接口一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。二、接口: 接口是引用类型的,类似于类,和抽象转载 2016-06-28 20:20:27 · 255 阅读 · 0 评论 -
海量数据找中位数
腾讯二面问到,但不是中位数。先科普了百分位数的概念,然后求50%,80%的百分位数。=========================================================腾讯一面问到了,用的算法导论中的Kth算法,期望时间复杂度为O(n)。后来想了想,万一数据多的来根本不能一次读入内存,这个时候该如何解决呢?题目如下:只有2G内存的pc机,在转载 2016-06-30 23:11:38 · 525 阅读 · 0 评论 -
按位反转无符号字符
以下转自:http://www.xuebuyuan.com/1709778.html题目:一个unsigned char,记为src,把其中的字节高位和低位全部互换 分析:想找出src中某一位的bit,肯定是要拿一个该位为1其他位为0的char,记为flag,和他进行&,取出该位的值,记为onebit。把该onbit左移(或者右移,看是否现在已经到了中间转载 2016-06-30 22:18:03 · 740 阅读 · 0 评论