![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++语言编程
文章平均质量分 77
fk961859482
爱生活,爱知识,爱自己,爱上进。
展开
-
关于堆栈的详解
在计算机领域,堆栈是一个不容忽视的概念,堆栈是两种数据结构。 堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入和删除。 要点: 堆,列队优先,先进先出。 栈,先进后出(First-In/Last-Out)。 栈(操作系统): 在函数调用时,在大多数的C编译器中,原创 2014-12-18 15:15:18 · 856 阅读 · 0 评论 -
二叉树前序、中序、后序非递归遍历
我们知道二叉树的递归遍历写起来很简单,但是稍微不太容易理解。为了更好地理解二叉树的遍历过程,这里用栈来模拟递归的步进步出。#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;原创 2017-02-15 16:10:53 · 398 阅读 · 0 评论 -
《C++ Prime Plus 第八章》——内联函数
内联函数是C++为提高程序运行速度所做的一项改进。常规函数和内联函数之间的主要区别不在于编写方式,而在于C++编译器如何将它们组合到程序中。要了解内联函数与常规函数之间的区别,必须深入到程序内部。 编译过程的最终产物是可执行的程序——由一组机器语言指令组成。运行程序时,操作系统将这些指令载入到计算机内存中,因此每条指令都有特定的内存地址。计算机随后将逐步执行这些指令。有时(如有原创 2014-12-14 00:28:27 · 864 阅读 · 0 评论 -
《C++ Prime Plus 第七章》—函数指针
函数指针 与数据项类似,函数也有地址。函数的地址是存储其机器语言代码的内存的开始地址。通常,这样地址对用户而言是透明的,但对操作系统而言却是很有用的。例如,可以编写将另一个函数的地址作为参数的函数。这样第一个函数就能够找到第二个函数并执行所需的操作。函数地址作为参数传递,实现了在不同时间使用不能函数,可以像对待普通变量一样使用函数。 首先通过一个例子来阐述这原创 2014-12-10 22:45:13 · 815 阅读 · 0 评论 -
C++高精度算法—大数加大数,大数乘以小数
一次偶然的机会,看到百度面试题中出现了很多关于处理大数据的处理题目,也称作高精度题目,另外在ACM竞赛中也偶尔会碰到。我们知道在C语言或C++语言中,通常受机器字长的限制,我们会碰到如果某个整数的范围超过一个范围就没法运算。这时我们只能先用字符串读进去,然后再将字符型的“数”转换成数值的“数”,再模拟手算,一位一位相加,最后得到结果。 具体请看下面的例子:#include原创 2014-12-09 06:29:59 · 3877 阅读 · 0 评论 -
《C++ Prime Plus 第七章》—指针和const
常量指针和指针常量这两个名词虽然非常绕嘴,不过说的非常准确。用中国话的语义分析就可以很方便地把三个概念区分开。一) 常量指针。常量是形容词,指针是名词,以指针为中心的一个偏正结构短语。这样看,常量指针本质是指针,常量修饰它,表示这个指针乃是一个指向常量的指针(变量)。指针指向的对象是常量,那么这个对象不能被更改。在C/C++中,常量指针是这样声明的:1)const int原创 2014-12-09 22:38:12 · 706 阅读 · 0 评论 -
《C++ Prime Plus 第七章》—函数和结构体初识
为数组编写函数是我们一直讨论的话题,但为结构编写函数比为数组编写函数还要简单。虽然结构变量和数组一样,都可以存储多个数据项,但在涉及到函数时,结构变量的行为更接近于基本的单值变量。也就是说,与数组不同,结构将其数据组合成单个实体或数据对象,该实体被视为一个整体。请看下面的例子:有些地图指出,从福州到厦门需要3小时50分钟,而从厦门到福州需要1小时25分钟。对于这种时间,可以使用结构来表示——一原创 2014-12-08 01:18:53 · 860 阅读 · 0 评论 -
《C++ Prime Plus 第七章》—数组、函数、指针初步
我们经常会看到将一维数组的名字,即数组首地址作为参数传入函数,从而实现对数组进行一些简单操作,比如数组的求和;此外我们还有另一种给函数提供所需信息的方法,即指定元素区间,这可以通过传递两个指针来完成:一个指针标识数组的开头,另一个指针标识数组的尾部。将区间传递给函数将告诉函数应当处理那些元素,这样处理数组将更加灵活。例如给出下例:#include //#includeusing nam原创 2014-12-08 00:37:31 · 689 阅读 · 0 评论 -
构造函数和析构函数 <三>
/****** 1.构造函数初始化列表******/#includeusing namespace std;class Test{public: Test():p(new int[size]),size(10)//初始化列表初始化变量size和指针p,注意顺序 { cout<<"new obj creat succes!"<<endl; for(int i=原创 2014-12-20 11:35:29 · 547 阅读 · 0 评论 -
构造函数和析构函数 <二>
//******‘=’作为赋值运算符创建对象时调用转换构造函数*****#includeusing namespace std;class Test{public: Test(int nu)//带参数的构造函数 { num=nu; cout<<"Call Test(**) success!"<<endl; cout<<"nu原创 2014-12-19 20:20:27 · 549 阅读 · 0 评论 -
构造函数和析构函数 <一>
构造函数是类的一种特殊成员函数。当创建一个类类型的对象时,系统会默认调用构造函数。在C++中,在类中定义的函数,都是可以抽象成一种方法。于是构造函数也是为类的对象服务的一种方法。主要用来在创建对象时初始化对象,即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中 。特别的一个类可以有多个构造函数,可根据其参数个数的不同或参数类型的不同来区分它们,即构造函数的重载。构造函数的原创 2014-12-18 20:04:02 · 688 阅读 · 0 评论 -
malloc()、free()函数详解
一直以来对malloc()函数和free()函数都只是会用而已,而并未尝试去理解其深刻的内涵,今天就写写自己的一些认识,有很多也是自己刚刚学到的。 malloc的全称是memory allocation,中文叫动态内存分配,当无法知道内存具体位置的时候,想要绑定真正的内存空间,就需要用到动态的分配内存。原型 externvoid *malloc(unsigned int原创 2014-12-18 14:34:16 · 5586 阅读 · 0 评论