自定义博客皮肤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 1033

原创 为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 2034

原创 sudoers配置

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

2013-10-19 16:26:32 1298

原创 位数组

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

2013-09-27 13:02:04 3863

原创 二分查找

二分查找的思想很简单,但是实现时有多种变体。 最常见的实现使用闭区间,并且使用3条件分支: template int 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 523

原创 EC之Implementations

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

2013-08-25 23:08:09 495

原创 EC之Designs and Declarations

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

2013-08-09 23:32:00 647

原创 合并排序

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

2013-08-06 10:42:57 545

原创 插入排序

打扑克牌时,我们每摸一张牌,就将它插入到合适的位置,插入排序和这个过程类似。 给定一个数组,我们从第二个元素开始,每次都将元素插入到已排序的子数组中。 下面给出插入排序的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 445

原创 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 559

原创 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 757

原创 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 880

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

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

2013-07-28 07:26:29 512

原创 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 3712

空空如也

空空如也

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

TA关注的人

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