- 博客(15)
- 资源 (10)
- 收藏
- 关注
转载 Linux下程序的Profile工具
我们在写程序,特别是嵌入式程序的时候,通常需要对程序的性能进行分析,以便程序能够更快更好地运行,达到实时(real-time)的目的。如果程序很大,分析起来就很困难。如果有个工具能够自动进行程序的性能分析,那就最好了。这里介绍一种Linux下程序的Profiling工具----GNU profiler。gprof的基本用法:1. 使用 -pg 选项编译和链接你的应用程序
2015-10-20 17:02:25 421
原创 八皇后问题(Python实现)
看《Python基础教程》,看到生成器一章,提到八皇后问题,没有继续往后看,自己试着写了一个。八皇后问题是数据结构里面的经典问题,思路主要是利用回溯法,利用栈保留走过的路径,走过的路,入栈,走不通了,出栈,继续往下尝试。思路比较简单,写个伪码没什么问题。但是写得时间比较长,要是面试的时候让你笔写个无BUG可运行版本,那还真得喊救命了运行结果:能够打印出全部92种解法
2015-10-12 20:46:46 3113
转载 C++ 虚函数表解析
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R
2015-10-12 11:42:58 287
原创 C++中继承覆写导致基类的成员不可见
在C++中,基类定义了一个成员函数 f(),派生类定义了一个成员函数 f(int),然后派生类来调用:pDerieved->f(),结果会怎样?派生类的重载定义,会导致基类的函数在名称查找的时候,不可见。但是C++的设计哲学,又可以让你用using声明实现基类成员函数在派生类中重载。代码一:#include#includeusing namespace std;c
2015-10-12 01:23:12 448
原创 C++中关于public、protect、private的访问权限控制
一:成员的访问权限1: public访问权限 一个类的public成员变量、成员函数,可以通过类的成员函数、类的实例变量进行访问 #include#includeusing namespace std;class AccessTest{ public: int pub_mem; int pub_fun(){}; protected:
2015-10-11 21:29:33 20418 7
原创 关于Python生成器(Generator的yield、next、send)
习惯了C++和Java等强类型的语言,函数调用都是顺序执行的,返回之后栈清空,不留痕迹。初次遇到Python生成器,理解起来,真是破费周章。关于Python生成器,大概需要关心的主要是yield关键字,以及其后的next和send函数的调用。next函数在迭代的时候,为隐式调用(implicit)。一:生成器函数 生成器函数和一般函数外观上没有什么不同。主要是
2015-10-10 01:24:58 1876
转载 Improve Your Python: 'yield' and Generators Explained
Prior to beginning tutoring sessions, I ask new students to fill out a briefself-assessment where they rate their understanding of various Python concepts. Some topics ("control flow with if/else" or
2015-10-09 21:40:15 410
原创 二分法和牛顿迭代法求平方根(Python实现)
求一个数的平方根函数sqrt(int num) ,在大多数语言中都提供实现。那么要求一个数的平方根,是怎么实现的呢?实际上求平方根的算法方法主要有两种:二分法(binary search)和牛顿迭代法(Newton iteration)
2015-10-09 10:22:07 40154 8
转载 Python中深拷贝与浅拷贝
一、前奏:熟悉Python内存管理在Python中,变量在第一次赋值时自动声明,在创建---也就是赋值的时候,解释器会根据语法和右侧的操作数来决定新对象的类型。引用计数器:一个内部跟踪变量引用计数:每一个对象各有多少个引用当对象被创建并(将其引用)赋值给变量时,该对象的引用计数就被设置为 1>>> x = 3.14语句 x=3.14,创建一个浮点型对象并将其引用赋值
2015-10-08 00:01:24 293
原创 Python中的注释写法
1:单行注释Python中单行注释为在行首使用#字符如:#key,value=x.popitem()2:多行注释Python中多行注释采用''' 或者"""如:'''import time import thread def timer(no, interval): cnt = 0 while cnt<1
2015-10-07 23:26:05 1047
原创 C++中内联函数何时被编译器禁止?
C++当中定义内联函数,可以让编译器将对内联函数的调用直接展开。这就多少有点像宏定义了,而且没有宏定义的缺点(预处理替换,无法当成变量、调用有可能导致参数异常被改、等等)。使用内联函数可以避免函数调用的开销(栈开辟、返回地址设定、栈展开),在一定的程度上可以提高程序的性能。但是这种提高是有代价的。编译器将函数展开,会直接导致可执行程序变大。(导致运行缺页、cache命中
2015-10-06 17:49:22 3737
转载 C++中的struct和class的区别
来自:http://hi.baidu.com/pengxiangbobin19890125/blog/item/b05586eee77300212df53411.html C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能否包含构造和析构
2015-10-06 14:35:24 432
转载 UNIX下的LD_PRELOAD环境变量
前言 也许这个话题并不新鲜,因为LD_PRELOAD所产生的问题由来已久。不过,在这里,我还是想讨论一下这个环境变量。因为这个环境变量所带来的安全问题非常严重,值得所有的Unix下的程序员的注意。 在开始讲述为什么要当心LD_PRELOAD环境变量之前,请让我先说明一下程序的链接。所谓链接,也就是说编译器找到程序中所引用的函数或全局变量所存在的位置。一般来说,程序的链
2015-10-05 13:45:19 440
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人