尾递归
摘要:普通递归中进行了大量重复计算,同时又容易栈溢出。与普通递归相比,由于尾递归的调用处于方法的最后,因此方法之前所积累下的各种状态对于递归调用结果已经没有任何意义,因此完全可以把本次方法中留在堆栈中的数据完全清除,把空间让给最后的递归调用。这样的优化便使得递归不会在调用堆栈上产生堆积,意味着即时是“无限”递归也不会让堆栈溢出。这便是尾递归的优势。下面来看一下普通递归与尾递归的比较:#pragma once#include <iostream>#include <ctime>#include <windows.h>using namespace std;int f
阅读全文
虚函数初探
摘要:今天读了coolshell博主几年前的旧文,C++虚函数表解析,代码如下:#pragma once#include <iostream>using namespace std;class Base{public: virtual void f(){ cout<<"Base::f()"<<endl;} virtual void g(){ cout<<"Base::g()"<<endl;} virtual void h(){ cout<<"Base::h()"<
阅读全文