自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

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

原创 command not found或找不到命令的原因

1.文件路径错误2.文件不可执行

2013-10-20 18:00:29 857

原创 为GCC添加头文件和库的搜索路径

C_INCLUDE_PATH和CPLUS_INCLUDE_PATH分别指定了GCC编译C和C++文件时头文件的搜索路径,而LIBRARY_PATH则指定了链接时库的搜索路径。这些搜索路径的优先级低于命令行指定路径,高于系统默认路径。具体用法如下:$C_INCLUDE_PATH=path_to_include$export C_INCLUDE_PATH

2013-10-20 17:47:03 1965

原创 sudoers配置

在配置sudoers时应注意,文件后面的配置会覆盖前面的配置。由于sudoers文件已有配置如下:# User privilege specificationroot    ALL=(ALL:ALL) ALL# Members of the admin group may gain root privileges%admin ALL=(ALL) ALL# All

2013-10-19 16:26:32 1237

原创 位数组

如果某类对象只有两种值,我们只需要一个二进制位就能表示该对象。这样,一个32位整型数就能表示32个对象。位数组就是用来存储这种对象的数组。其内部为整数数组,整数的每一位都表示一个对象。若按正常方式存储对象,则至少要8位存储空间,使用位数组大大降低了存储需求。值得注意的是,位数组只能存储只有两种值的元素。下面是我写的一个位数组的简单C++实现:#ifndef BIT_ARRAY_H#d

2013-09-27 13:02:04 3769

原创 二分查找

二分查找的思想很简单,但是实现时有多种变体。最常见的实现使用闭区间,并且使用3条件分支:templateint binary_search(T* a, T &key, int imin, int imax) { while (imin <= imax) { int imid = (imin + imax) / 2; if (a[imid] < key) {

2013-09-02 23:45:17 491

原创 EC之Implementations

条款26:Postpone variable definitions as long as possible只要你定义了一个类变量,你就得承受相应的构造和析构成本——即使该变量最终未被使用。或许你觉得你不会定义一个不使用的变量,那不妨考虑下面这个函数,它返回加密后的密码,但如果密码太短,函数会抛出一个类型为logic_error的异常://这个函数过早定义变量"encrypted"st

2013-08-25 23:08:09 454

原创 EC之Designs and Declarations

条款18:Make interfaces easy to use correctly and hard to use incorrectlyC++中充斥着各种各样的接口,function接口、class接口、template接口……每一种接口都是客户与你的代码互动的手段。假设你面对的是一群通情达理的客户,如果他们用错了某个接口,你也应该为此负一部分责任。理想状态下,如果客户试图使用某个接口但却

2013-08-09 23:32:00 604

原创 合并排序

合并排序采用了“分治法”的思想:分解:将n个元素分成各含n/2个元素的子序列解决:用合并排序法分别对子序列递归地排序合并:合并两个已排序的子序列在对子序列排序时,其长度为1时递归结束。下面是合并排序的C++代码:/*合并已排序子数组a[begin...middle],a[middle+1...end]*/template void merge(T a[], int

2013-08-06 10:42:57 500

原创 插入排序

打扑克牌时,我们每摸一张牌,就将它插入到合适的位置,插入排序和这个过程类似。给定一个数组,我们从第二个元素开始,每次都将元素插入到已排序的子数组中。下面给出插入排序的C++代码:void insertionSort(std::vector& v) { for (int i = 1; i < v.size(); ++i) { int j, x; for (j

2013-08-03 23:21:23 417

原创 EC之Resource Management

条款13:Use objects to manage resources假设我们使用一个用来模拟投资行为的程序库,各种投资类型继承自root class Investment:class Investment { ... }; //“投资类型”继承体系中的root class进一步假设,该程序库通过一个工厂函数提供某个特定类型的Investment对象:Investment* cr

2013-08-02 21:43:55 511

原创 EC之Constructors,Destructors, and Assignment Operators

条款05:Know what function C++ silently writes and calls如果没有显式声明,编译器会自动为class创建default构造函数、copy构造函数、copy assignm操作符以及析构函数。显式声明这些函数或在base class中将这些函数声明为private可以阻止编译器的这一行为。如果class内含const或reference成员

2013-07-30 16:53:09 668

原创 EC之Accustoming Yourself to C++

条款01:View C++ as a federation of languages我们可以把C++看成四部分,即C,Object-Oriented C++,Template C++,STL。C是C++的基础,只不过C没有模板,没有异常,没有重载。Object-Oriented C++则使C++拥有了面向对象设计的能力,类,封装,继承,多态,不一而足。Template C++是C+

2013-07-28 09:30:26 821

原创 认真地看一遍《Effective C++》

之前草草地看了一两遍《Effective C++》(以下简称EC),但发现效果不是很好,所以从今个儿重新看一遍,边看边写学习笔记,以加深理解。PS:其实我本来打算在博客园写的,都已经开好头了,不过还是更喜欢这儿的界面,所以我过来了

2013-07-28 07:26:29 470

原创 JS函数柯里化及其应用

函数柯里化用来创建已经设置好一个或多个参数的函数。下面是一个用来创建柯里化函数的通用函数。function curry(fn) {    var outerArgs = Array.prototype.slice.call(arguments, 1);    return function() {        var innerArgs = Array.prototype.slic

2012-08-22 19:18:25 3628

空空如也

空空如也

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

TA关注的人

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