自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

愿世界和平的IT劝退师

讨论请加qq507517279

  • 博客(38)
  • 收藏
  • 关注

原创 开灯问题

有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯被打开,开着灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?    输入:n和k,输出开着的灯编号。k≤n≤1000。   样例输入:7  3   样例输出:1 5 6 7  [cpp] v

2017-04-30 15:07:18 382

原创 代码员工分配方案

题目描述:最近公司收到了一项任务。这项任务太繁重了,以至于要分割成几部分交给不同的人做才能完成。公司有三类员工,每类员工分别能完成5,8,10 KB代码量。经理在估计了任务所需代码量后,想知道有多少种分配方案能刚刚好完成任务。输入输入第一行一个整数n(1接下来第二行三个整数a,b,c(0样例输入233

2017-04-26 12:15:22 529

转载 临江仙

滚滚长江东逝水浪花淘尽英雄是非成败转头空青山依旧在几度夕阳红 白发渔樵江楮上惯看秋月春风一壶浊酒喜相逢古今多少事都付笑谈中 一壶浊酒喜相逢古今多少事都付笑谈中

2017-04-24 21:32:29 354

转载 python2在python3语法改动

2.0 print u ‘ip’ =》 3.0 print("ip")2.0 urllib2 => urllib.request 或者urllib.parse2.0 raw_input=>inputpython 2.4 与 python 3.0 的比较一、 print 从语句变为函数原: print 1, 2+3改为: print ( 1

2017-04-20 16:46:54 1089

转载 右值引用和移动构造

C++ 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”(move semantics)的基础。而要理解右值引用,就必须先区分左值与右值。对左值和右值的一个最常见的误解是:等号左边的就是左值,等号右边的就是右值。左值和右值都是针对表达式而言的,左值是指表达式结束后依然存在的持久对象,右值是指表达式结束时就不再存在的临时对象。一个区分左值与右值的便捷方法是:看能

2017-04-20 14:10:05 427

转载 迭代器

一步一步认识C++STL中的迭代器        “ 指针 ” 对所有 C/C++ 的程序员来说,一点都不陌生。在接触到 C 语言中的 malloc 函数和C++ 中的 new 函数后,我们也知道这两个函数返回的都是一个指针,该指针指向我们所申请的一个 “ 堆 ” 。提到 “ 堆 ” ,就不得不想到 “ 栈 ” ,从 C/C++ 程序设计的角度思考, “ 堆 ” 和 “ 栈 ” 最大的区别

2017-04-19 16:22:51 360

转载 linux开机自启动程序

可以编辑/etc/rc.d/rc.local,加入需要自启软件的命令。比如开机运行firefox    1,打开终端,输入vi /etc/rc.d/rc.local。    2,在末行添加一句:firefox                   就行了。    3,保存退出,注销重新登录查看效果。如果要查看哪些程序被添加为自启动,可以使用命令  : cat  

2017-04-19 08:50:36 491

转载 两个数字之和等于sum

能否快速找出一个数组中的两个数字,让这两个数字之和等于一个给定的值,为了简化起见,我们假设这个数组中肯定存在至少一组符合要求的解。     假如有如下的两个数组,如图所示:    5,6,1,4,7,9,8    给定Sum= 10    1,5,6,7,8,9    给定Sum= 10   分析与解法    这个题目不是很难,也很容易理解。

2017-04-17 14:21:37 548

转载 volatile

volatile 影响编译器编译的结果,指出,volatile 变量是随时可能发生变化的,与volatile变量有关的运算,不要进行编译优化,以免出错,(VC++ 在产生release版可执行码时会进行编译优化,加volatile关键字的变量有关的运算,将不进行编译优化。)。 例如: volatile int i=10; int j = i; ... int k = i; 

2017-04-17 10:41:19 163

转载 防止头文件被重复包含

在windows平台下,有一个很方便的宏: #pragma once指定当前文件在构建时只被包含(或打开)一次,这样就可以减少构建的时间,因为加入#pragma once后,编译器在打开或读取第一个#include 模块后,就不会再打开或读取随后出现的相同#include 模块.另外,还可以用条件编译语句来实现:#ifndef "XX_H"#define "XX_H

2017-04-16 16:18:00 342

原创 二叉树的DFS/BFS

广度优先遍历    BFS,也就是层次遍历,相当于前序。需要借助一个队列,现将二叉树的根节点入队,然后出队,访问该节点,如果它有左子树,则将左子树根节点入队;如果有右子树,则将右子树根节点入队。然后出队,对出队节点访问,如此反复,直到队列为空。 void LevelOrder(BiTree root) {      InitQueue(Q);               //初始化...

2017-04-14 10:05:13 787

转载 委托

熟练使用委托很有必要,但是知道委托的原理而说不清楚也是很尴尬的,尤其在面试中,在此整理一下,使描述更清晰:一.委托声明与本质1.声明委托public delegate void SayHelloDelegate(string who);112.使用ILSpy反编译后,看其本质public class auto ansi sealed SayHelloDele

2017-04-13 09:29:23 426

转载 全局变量/局部变量

全局变量和局部变量局部变量可以与全局变量重名,但是局部变量会屏蔽全局变量。要使用全局变量,需要使用::。在函数体内引用变量会用到同名的局部变量而不是全局变量,对于一些编译器来说,在同一个函数体内可以定义多个同名的局部变量。例如我们可以在一个函数内部,在两个循环中都定义同名的局部变量i,而局部变量i的作用域在那个循环体内    具体来说,全局变量和局部变量的区别如下:1.

2017-04-12 17:05:25 535

转载 二叉搜索树

二叉搜索树的定义二叉搜索树,也称有序二叉树,排序二叉树,是指一棵空树或者具有下列性质的二叉树:1. 若任意节点的左子树不空,则左子树上所有结点的值均小于它的根结点的值;2. 若任意节点的右子树不空,则右子树上所有结点的值均大于它的根结点的值;3. 任意节点的左、右子树也分别为二叉查找树。4. 没有键值相等的节点。二

2017-04-11 12:11:16 305

原创 动态绑定

定义 动态绑定是将一个过程调用与相应代码链接起来的行为。是指与给定的过程调用相关联的代码,只有在运行期才可知的一种绑定,他是多态实现的具体形式。原理 C++中,通过基类的引用或指针调用虚函数时,发生动态绑定。引用(或指针)既可以指向基类对象也可以指向派生类对象,这一事实是动态绑定的关键。用引用(或指针)调用的虚函数在运行时确定,被调用的函数是引用(或指针)所

2017-04-11 10:48:17 330

转载 C++中的空类,默认产生哪些类成员函数?

答:class Empty{  public:      Empty(); // 缺省构造函数      Empty( const Empty& ); // 拷贝构造函数      ~Empty(); // 析构函数       Empty& operator=( const Empty& ); // 赋值运算符       Empty* operator&();

2017-04-11 10:43:53 201

转载 TIME_WAIT

TIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的。仅仅是主动关闭的一方,在使用FIN|ACK|FIN|ACK四分组正常关闭TCP连接的时候会出现这个TIMEWAIT。服务器在处理客户端请求的时候,如果你的程序设计为服务器主动关闭,那么你才有可能需要关注这个TIMEWAIT状态过多的问题。如果你的服务器设计为被动关闭,那么你首先要关注的是CLOSE_WAIT。原则T

2017-04-11 10:37:38 214

转载 二叉树常见问题

二叉树节点定义如下:struct BinaryTreeNode{    int Value;    BinaryTreeNode*  Left;    BinaryTreeNode*  Right;};相关链接:轻松搞定面试中的链表题目题目列表:1. 求二叉树中的节点个数2. 求二叉树的深度3. 前序遍历,中序遍历,后序遍历4.分层遍

2017-04-08 13:14:57 389

转载

前言:一、为什么要树结构?不像数组、链表是线性的数据结构,树是一种分层的非线性数据结构(1)使用树的一个原因是:我们需要存储有分层关系的信息(比如说文件系统)(2)另外一个是(BST):当把树建成有一定的形式的树可以方便数据的查找(对于平衡的树,查找时间复杂度为O(logn))。(3)同理对于这样一个树(AVL/红黑树):他们的插入和删除的时间复杂度是(O(

2017-04-08 12:48:13 276

转载 链表

版权所有,转载请注明出处,谢谢!http://blog.csdn.net/walkinginthewind/article/details/7393134链表是最基本的数据结构,面试官也常常用链表来考察面试者的基本能力,而且链表相关的操作相对而言比较简单,也适合考察写代码的能力。链表的操作也离不开指针,指针又很容易导致出错。综合多方面的原因,链表题目在面试中占据着很重要的地位。本文

2017-04-07 10:31:20 357

转载 哈希表

哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表称为哈希表。这种方法的基本思想是:首先在元素的关键字k和元素的存储位置p之间建立一个对应关系f,使得p=f(k),f称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为f(k)的单元;以后当查找关键字为k的元素时,再利用哈希函数计算出该元素的存储位置p=f(k),从而达到按关键字直接存取元素的目的。   当关键字集合很大时,关

2017-04-06 21:33:41 624

转载 linux系统644、755、777权限详解

常用的linux文件权限:444 r--r--r--600 rw-------644 rw-r--r--666 rw-rw-rw-700 rwx------744 rwxr--r--755 rwxr-xr-x777 rwxrwxrwx从左至右,1-3位数字代表文件所有者的权限,       4-6位数字代表同组用户的权限,       7-9数字

2017-04-06 16:23:59 762

转载 智能指针

作用 智能指针(smart pointer)是存储指向动态分配(堆)对象指针的类,用于生存期控制,能够确保自动正确的销毁动态分配的对象,防止内存泄露。它的一种通用实现技术是使用引用计数(reference count)。原理智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。每次创建类的新对象时,初始化指针并将引用计数置为1;当对象作为另一对象

2017-04-06 14:14:10 351

转载 引用

引用的概念引用:就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。引用的声明方法:类型标识符 &引用名=目标变量名;  如下:定义引用ra,它是变量a的引用,即别名。    int a;    int &ra=a;  (1)&在此不是求地址运算符,而是起标识作用。  (2)类型标识符是指目标变量的类型。  

2017-04-06 09:39:38 272

转载 动态链接静态链接

分别编译与链接(Linking)大多数高级语言都支持分别编译,程序员可以显式地把程序划分为独立的模块或文件,然后每个独立部分分别编译。在编译之后,由链接器把这些独立的片段(称为编译单元)“粘接到一起”。(想想这样做有什么好处?)在C/C++中,这些独立的编译单元包括obj文件(一般的源程序编译而成)、lib文件(静态链接的函数库)、dll文件(动态链接的函数库)等。静态链接

2017-04-05 18:14:59 201

原创 for和while/++i和i++

for和whilewhile循环: 以行读取文件,默认分隔符是空格或者Tab; 循环体内有ssh、scp、sshpass的时候,需要加上for循环:以空格读取文件,也就是碰到空格,就开始执行循环体,所以需要以行读取的话,就要把空格转换成其他字符从执行结果可以看出:while循环: wait没起到作用,循环体在后台执行,后面的命令也同时在执行;fo

2017-04-05 18:04:26 1095

转载 多线程自增问题

i++考虑变量i++的操作,实际上可以分解为以下3步:(1)从内存单元读入寄存器;(2)在寄存器中对变量做增量操作;(3)把新的值写回内存单元。如果两个线程试图几乎在同一时间对同一变量做增量操作而不进行同步的话,结果可能就不一致了,在上述代码中,我们传进线程函数的是变量的地址,那么变量i自增后,可能还没有写回内存单元,就被另一个线程读取了,那为什么不是只创建了一个线程了,而是确

2017-04-05 17:24:14 3045

转载 读者-写者问题

问题描述有读者和写者两组并发进程,共享一个文件,当两个或以上的读进程同时访问共享数据时不会产生副作用,但若某个写进程和其他进程(读进程或写进程)同时访问共享数据时则可能导致数据不一致的错误。因此要求:①允许多个读者可以同时对文件执行读操作;②只允许一个写者往文件中写信息;③任一写者在完成写操作之前不允许其他读者或写者工作;④写者执行写操作前,应让已有的读者和写者全部退出。问题分析1

2017-04-05 17:04:27 445

转载 STL容器线程安全

标准C++的世界是相当保守和精简的。在这个纯洁的世界,所有可执行文件都是静态链接的。不存在内存映射文件和共享内存。没有窗口系统,没有网络,没有数据库,没有进程。在这种情况下,当发现标准没有提到任何关于线程的东西时你不该感到惊讶。你对STL的线程安全有的第一个想法应该是这取决于STL的实现。 当然,多线程程序是很普遍的,所以大部分STL厂商努力使他们的实现在线程环境中可以正常工作。但

2017-04-05 16:50:29 451

转载 C/C++混合编程

1. C/C++混合编程是什么?就像问题本身所说, C/C++混合编程也就是一个工程中, 在C函数中调用C++函数的方法, 在C++的函数中能够调用C函数的方法.2. C/C++混合编程有什么用?在我们日常开发中, 也许会遇到这么一些情况, 同事A, C非常牛逼, 但是对C++一窍不通; 同事B, C++信手拈来, 但是对C却满头雾水. 但是在工作中有这么一种需求, 同

2017-04-05 16:29:39 440 1

转载 高并发处理/服务器宕机处理

一、 web加速相关技术1. 镜像站点2. DNS负载均衡3. CDN内容分发二、 内网加速技术1. 负载均衡(软件负载均衡、硬件负载均衡)2. Web缓存服务器3. Web/应用服务器分布式文件系统4. 分布式数据库(数据库主从分布、数据库分割、数据库缓存)1、HTML静态化 其实大家都知道,效率最高、消耗最小的就是纯静态化的html页面,所以

2017-04-05 15:54:21 15923

转载 top命令参数详解

简介top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止. 比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该

2017-04-05 15:30:21 7790

转载 运算符重载

C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,也是C++最吸引人的特性之一。   运算符重载是通过创建运算符函数实现的,运算符函数定义了重载的运算符将要进行的操作。运

2017-04-05 10:15:16 440 1

转载 protect,public,private

理解很重要: -----------------------可见protected 和privated都是针对函数定义来说的在外部程序中都不可被调用。而public表示可以被外部调用---即---对象.方法------------------------原来我对protect的理解有误。声明为protect的函数,能在子类(中定义子类的成员函数的时候

2017-04-05 09:59:54 402

转载 内联函数

一、什么叫inline函数? inline(小心,不是online),翻译成“内联”或“内嵌”。意指:当编译器发现某段代码在调用一个内联函数时,它不是去调用该函数,而是将该函数的代码,整段插入到当前位置。这样做的好处是省去了调用的过程,加快程序运行速度。(函数的调用过程,由于有前面所说的参数入栈等操作,所以总要多占用一些时间)。这样做的不好处:由于每当代码调用到内联函数,就需要在调用处直接插入

2017-04-05 09:55:58 182

转载 友元函数

1.友元函数的简单介绍1.1为什么要使用友元函数在实现类之间数据共享时,减少系统开销,提高效率。如果类A中的函数要访问类B中的成员(例如:智能指针类的实现),那么类A中该函数要是类B的友元函数。具体来说:为了使其他类的成员函数直接访问该类的私有变量。即:允许外面的类或函数去访问类的私有变量和保护变量,从而使两个类共享同一函数。实际上具体大概有下面两种情况需要使用友元

2017-04-05 09:46:24 216 1

转载 纯虚函数

首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:[cpp] view plain copy

2017-04-05 09:43:24 436

原创 数组中各个数字出现的次数

int main(){   int a[1000];   for(int i=0; i   {    for(int j=i+1; j    {    if(a[i]>a[j])    {    int temp;    temp = a[i];    a[i] = a[j];    a[j] = temp;    }    }   }

2017-04-05 09:01:11 353

空空如也

空空如也

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

TA关注的人

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