自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 资源 (4)
  • 收藏
  • 关注

原创 10个重要的Linux ps命令实战

也可在 ps命令实战 查看 ps命令能够给出当前系统中进程的快照。它能捕获系统在某一时间的进程状态。如果你想不断更新查看的这个状态,可以使用top命令。ps命令支持三种使用的语法格式:UNIX 风格,选项可以组合在一起,并且选项前必须有-连字符BSD 风格,选项可以组合在一起,但是选项前不能有-连字符GNU 风格的长选项,选项前有两个-连字符我们能够

2015-01-29 19:19:42 775

原创 Effective C++ (笔记) : 条款18 -- 条款23

条款18:让接口容易被正确使用,不易被误用在(参数)类型上客户不知道怎么使用的时候,可以导入简单的“外覆”类型来区别参数。也就是,自定义数据类型,使客户明确调用相关的类型,防止误用。尽量让自定义类型的行为和内置类型的行为相同,因为客户会想当然的和使用内置类型一样使用自定义类型,这也就是上面说的让接口容易被正确的使用。STL容器的接口十分一致,这也是他们非常容易使用的一个原因。

2015-01-25 15:31:02 682

原创 编译器的编译基本过程

编译器最基本的功能就是把高级语言编写的代码转化为机器指令(就是01串),从这个角度来说它本质上是个转换过程。经典的编译过程主要包括:词法分析(Lexical Analysis)词法分析就是从输入代码中识别出各种记号(token),例如对于C语言我们就需要知道if,else等是语言的关键字,myvar是个标识,而123myvar不能被识别为一个标识。负责实现词法分析的模块有时也称为s

2015-01-23 14:29:56 890

原创 将linux下的rm命令改造成移动文件至回收站

rm是Linux下文件删除的命令,它是Linux下非常强大却又非常危险的一条命令,特别是rm -rf有时候强大到让你欲哭无泪,当你想清除当前目录下的所有文件和目录时,很简单 #rm -rf ./*这没什么,但是,但是如果不小心打成这样#rm -rf /* 请节哀吧!~~ rm删除文件同时删除inode信息,这使得使用rm删除的文件十分难恢复。总之rm太危险了,特别是带有-rf参数时一定要慎

2015-01-22 14:30:07 1041

原创 深入理解函数指针

函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函数名称和地址的趣闻。在最后,本文给出一种简单的方式来看待函数指针,让你对其用法有一个更清晰的理解。函数指针和一个简单的函数我们从一个非常简单的Hello World函数入手,来见识一下怎样创建一个函数指针。#include // 函数

2015-01-22 09:52:31 771

原创 为什么寄存器比内存快?

文章来源:点击打开链接原因一:距离不同距离不是主要因素,但是最好懂,所以放在最前面说。内存离CPU比较远,所以要耗费更长的时间读取。以3GHz的CPU为例,电流每秒钟可以振荡30亿次,每次耗时大约为0.33纳秒。光在1纳秒的时间内,可以前进30厘米。也就是说,在CPU的一个时钟周期内,光可以前进10厘米。因此,如果内存距离CPU超过5厘米,就不可能在一个时钟周期内完成数据的

2015-01-21 21:52:28 723

原创 const、volatile、mutable的用法

const修饰普通变量和指针const修饰变量,一般有两种写法:const TYPE value;TYPE const value;这两种写法在本质上是一样的。它的含义是:const修饰的类型为TYPE的变量value是不可变的。对于一个非指针的类型TYPE,无论怎么写,都是一个含义,即value值不可变。 例如:const int nValue;

2015-01-20 15:49:19 773

原创 Effective C++ (笔记) : 条款11 -- 条款17

条款11:在operator=中处理“自我赋值”自我赋值有时候不是那么明显,在处理循环(a[i] = a[j])、指针(*px = *py)和参数传递(func(const Base &rb, const Derived *pd))的时候可能会发生。Widget::operator=(const Widget& rhs){ delete pb; pb = new

2015-01-17 11:18:06 682

原创 Effective C++ (笔记) : 条款05 -- 条款10

条款05:了解C++默默编写并调用哪些函数编译器可以暗自为class创建default构造函数、copy构造函数、copy assignment操作符,以及析构函数。只有这些函数需要(被调用)时,它们才会被编译器创建出来。在编译器产生的复制构造函数和赋值运算符执行的都是浅拷贝。当数据成员是引用或者常量的时候,编译器不知道该怎么处理,两手一摊,无能为力。当某个基类将cop

2015-01-17 11:01:18 713

原创 关于typedef的用法总结

typedef 声明,简称typedef,为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指typedef能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。定义类型别名定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。char* pa, pb; // 这

2015-01-16 13:52:24 632

原创 (每日算法)LeetCode --- Reverse Linked List II(旋转链表的指定部分)

Reverse Linked List II(旋转链表的指定部分)LeetcodeReverse a linked list from position m to n. Do it in-place and in one-pass.For example:Given 1->2->3->4->5->NULL, m = 2 and n = 4,return 1->4->3->2

2015-01-16 09:53:49 813

原创 git revert & git reset

先上图吧,这样比较直接。需要的就在下面评论区留下邮箱,我今天晚上就会发送到邮箱。请查收。需要的就在下面评论区留下邮箱,我今天晚上就会发送到邮箱。请查收。

2015-01-15 14:13:28 1142 4

原创 C/C++中变量的分配和在内存中的存储方式

操作系统与C语言中的堆栈及其区别CSDNC/C++一个由C/C++编译的程序占用的内存分为以下几个部分 1. 栈区(stack)— 由编译器自动分配释放,存放函数的参数名,局部变量的名等。其操作方式类似于数据结构中的栈。 2. 堆区(heap)— 由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事,分配方式倒是类似

2015-01-15 14:01:07 1571

原创 (每日算法)LeetCode --- Decode Ways

A message containing letters from A-Z is being encoded to numbers using the following mapping:'A' -> 1'B' -> 2...'Z' -> 26Given an encoded message containing digits, determine the total nu

2015-01-13 21:31:06 582

原创 (每日算法)LeetCode -- Merge Sorted Array (合并有序数组)

Given two sorted integer arrays A and B, merge B into A as one sorted array.Note:You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from

2015-01-12 20:42:13 795

原创 Effective C++ (笔记) : 条款01 -- 条款04

条款01:视C++为一个语言联邦条款02:尽量以const,enum,inline替换#define"宁可以编译器替换预处理器",使用#define那么在编译器之前预处理器已经完成了替换,记号名称没有进入记号表(symbol table),所以在调试或者编译错误的时候会莫名其妙。以常量替换宏是个好主意:const double AspectRatio = 1.653替换

2015-01-09 11:11:57 667

原创 为什么 构造函数、内联函数、静态函数和友元函数不能是虚函数

构造函数为什么不能是虚函数C++从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数。简单来说就是:虚函数的执行依赖于虚函数表。而虚函数表在

2015-01-08 21:33:31 2334

原创 Linux安装Python3完成升级

Linux安装Python3完成升级python首先下载源tar包可利用linux自带下载工具wget下载,如下所示:# wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz也可以在官网上下载其他版本,或者有交互界面的允许下,使用浏览器也可以。方式很多,只要能把源码下载下来就可以。下

2015-01-08 09:35:58 1947

原创 为什么基类指针和引用可以指向派生类对象,但是反过来不行?

详细解释了基类指针和引用指向派生类的原理和内存布局的结构。对动态调用和静态调用详细说明,对虚函数的实现原理和多态的关键以及final、override的使用环境进行了说明。

2015-01-06 16:30:04 2160 3

原创 看完这个你还不理解右值引用和移动构造 你就可以来咬我(下)

共分三篇,这是第一篇。另外两篇,看完这个你还不理解右值引用和移动构造 你就可以来咬我(上),看完这个你还不理解右值引用和移动构造 你就可以来咬我(中)。下面是新标准下的其他特性(共十点),了解一下,总有用上的时候。C++11 新特性分析auto现在是一种类型占位符,它会告诉编译器,应该从初始化式中推断出变量的实际类型。当你想在不同的作用域中(

2015-01-02 14:58:07 3620 8

原创 看完这个你还不理解右值引用和移动构造 你就可以来咬我(中)

共分三篇,这是第一篇。另外两篇,看完这个你还不理解右值引用和移动构造  你就可以来咬我(上),看完这个你还不理解右值引用和移动构造  你就可以来咬我(上)。看完上篇,应该对右值引用和移动构造有了总体上的概念,下面是一篇更加形象更加详细的论述。看完之后,相信你一定会对这个问题产生深入的理解和自己的认识。另一个版本的右值引用叙述右值引用解决的是各种情形下对象

2015-01-02 14:55:24 3911

原创 看完这个你还不理解右值引用和移动构造 你就可以来咬我(上)

共分三篇,这是第一篇。另外两篇,看完这个你还不理解右值引用和移动构造  你就可以来咬我(上),看完这个你还不理解右值引用和移动构造  你就可以来咬我(上)。C++ 右值引用 & 新特性C++ 11中引入的一个非常重要的概念就是右值引用。理解右值引用是学习“移动语义”(move semantics)的基础。而要理解右值引用,就必须先区分左值与右值。

2015-01-02 14:51:51 8832 6

SSH框架整合实例

完整的ssh框架整合实例,真的是完整的,不要积分

2014-08-28

阿里巴巴2014名企实习

包括笔试面试的经验分享,有笔试题目和面试题目的分享,看一下收获很大的

2014-05-29

排列生成算法

对排列生成算法的很好的总结,很详细,有着丰富的例子,理解起来不是问题

2013-11-23

数据库 分析了解图书信息管理的创建过程

库表的建立,这是很容易实现的,希望对大家会有作用,谢谢

2011-06-03

空空如也

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

TA关注的人

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