- 博客(33)
- 收藏
- 关注
原创 C++new实现机制
C++new实现机制1.new和delete最终调用malloc和free2.new操作数据类型两种: 2.1基本数据类型 int *p=new int; 00E8139E push 4 00E813A0 call operator new (0E8117
2016-04-24 16:19:52 2660
原创 C++ 重载、覆盖(重写)、隐藏
重载、覆盖(重写)、隐藏1.重载:重载从overload翻译过来,是指同一可访问区内被声明的几个具有不同参数列(参数的类型,个数,顺序不同)的同名函数,根据参数列表确定调用哪个函数,重载不关心函数返回类型。示例代码如下:classA{ public: voidtest(
2015-11-14 10:54:56 338
原创 C++堆和栈的分配
C++堆和栈的分配栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,其操作方式类似于数据结构中的栈。堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收,注意它与数据结构中的堆是两回事,分配方式类似于链表。全局区(静态区)(static)—全局变量和静态变量的存储是放在一块的,初始化的全局变量和
2015-10-31 09:46:11 482
原创 C++基础编程----6.2函数
函数1.引用返回的是左值,可以赋值2.返回数组指针 int (*func(int i))[10]; int even[]={0,2,4,6,8}; int odd[]={1,3,5,7,9}; decltype(odd) *arrptr(int i) // decltype并不负责把数组类型转换成对应的指针类型,所以它的结果仍然是个数组 返回 数
2015-10-29 16:55:38 522
原创 C++基础编程----6.1函数
函数6.1函数基础 return: 1.返回值2.将控制权从被调用的函数转回到主调函数。 函数的返回类型不能是数组类型或者函数类型,但可以是指向数组的指针或者指向函数的指针。 int(*fun(int,int))[10]; // 返回指针数组 int(&fun(int,int))[10]; // 返回数组的引用 自动对象: 把只存在于块执行
2015-10-29 16:53:53 445
原创 C++基础编程----5.1try和异常处理
try和异常处理 异常是存在于运行时的反常行为,这些行为超出了函数的正常功能。 当程序的某部分检测到一个它无法处理的问题时,需要异常处理。 throw try catch子句1. throw表达式 throw表达式引发一个异常,表达式的类型就是抛出异常的类型。 if(item1.isbn()==item2.isbn()) throw runtime
2015-10-29 16:51:01 440
原创 C++基础编程----含有可变形参函数
省略符形参省略符形参仅仅是用于C和C++通用的类型,特别注意的是,大多数类类型的对象在传递时给省略符形参时是无法正确拷贝的。省略号的优先级别最低,所以在函数解析时,只有当其它所有的函数都无法调用时,编译器才会考虑调用省略号函数的。举例:#include // 要处理不定参数的函数要包含头文件:#include #includeusing
2015-10-25 08:49:39 654
原创 电梯调度算法
电梯调度算法由于楼层不高,那么繁忙的上下班时间,每次电梯从一层往上走,只允许停留在其中某一层。所有乘客都从一楼上电梯,到达某层楼之后,电梯停下来,所有乘客上自己的目的层。试问电梯停在哪一层,保证乘客爬楼梯层数之和最少?#includeusing namespace std;// 电梯停在哪一层 保证所有乘客爬楼梯层数最少// 返回值:楼梯层数 函数
2015-10-23 22:27:14 1447
原创 求N!二进制最低位1的位置
#includeusing namespace std;long long factorial(int N);templatevoid DemicalConversBinary(T llret);// 判断最低位为1的情形int lowestOne(long long);int main(int argc, char ** argv)
2015-10-22 15:39:00 906
原创 无头单链表删除随机节点
#include#include#includeusing namespace std;// 从无头单链表中删除节点// 假设一个没有头指针的单链表,一个指针指向此单链表中间的一个节点(不是第一个也不是最后一个节点),请将该结点从单链表中删除// 创建节点typedef struct node{int data;struct node
2015-10-19 23:01:25 551
原创 数组中子数组最大值----分治思想
#includeusing namespace std;// 求数组中子数组的最大值 // 参数1:数组,参数2:数组起始位置,参数3:数组尾位置的下一个位置int MaxSum(int *,int,int); int SelMaxValue(int,int,int); // 选择最大值int Find_Max_Crossi
2015-10-17 21:13:40 493
原创 数组中求最大最小值
#include#includeusing namespace std;// 先判断数组是含有奇数偶数个元素,如果偶数个元素,将A[0]、A[1]最大最小值分别给Max、Min,从第二个元素两个两个进行比较,最大值给// Max 最小值给Min// 如果为奇数个元素,将A[0]先分别置为最大最小值,两个元素两个元素比较后,较大的和Max比较,较小的和Min进行比较/
2015-10-17 21:12:11 1012
原创 C++基础编程----4.3表达式
表达式1.位运算符 1.1 一种名为bitset的标准库类型可以表示任意大小的二进制位集合。 1.2 运算符:~ > & | ^(异或) 1.3 符号位如何处理没有明确的规定,强烈建议将位运算符用于处理无符号类型。 1.4 不要将位运算符和逻辑运算符(&&、||、!)搞混
2015-10-17 07:58:20 466
原创 C++基础编程----4.2运算符
运算符1.算术运算符 1.1 bool b=true; bool b2=-b; // 对大多数运算符来说,布尔类型运算对象将提升到整型运算对象,-b=-1,-1为非0,所以转换为true初始化b2. 1.2 溢出和其他算术运算异常 溢出就是该类型计算的结
2015-10-17 07:57:25 463
原创 C++基础编程----4.1表达式
表达式1.定义 表达式是由一个或多个运算对象组成,对表达式求值将得到一个结果。字面值和变量是最简单的表达式,其结果就是字面值和变量的值。将运算符和多个运算对象组合起来构成复杂的表达式。2.基本概念 2.1 函数调用是个复杂的运算符,它对运算对象的数量没有限制。 2.2 使用重载运算符,运算对象类型和返回值都是由该运算符
2015-10-16 20:48:56 632
原创 C++基础编程----3.2多维数组
多维数组1.指针和多维数组 1.由多维数组名转换得来的指针实际上是指向第一个内层数组的指针 int ia[3][4]; int (*p)[4]=ia; // p指向含有4个整数的数组 2. int a
2015-10-14 21:17:28 505
原创 C++基础编程----3.1数组
数组数组是一种类似于标准库类型vector的数据结构,它们都可以存放同种类型的对象,对象本身没有名字,需要根据位置进行访问。不同之处在于,数组大小固定,注意:如果不清楚元素的确切个数,请用vector。 1.定义初始化数组 1. unsigned cnt=42; string bad[cnt];
2015-10-14 18:40:01 469
原创 C++基础编程----2.4迭代器
迭代器介绍我们已经知道可以使用下标运算符来访问string对象的字符或者vector对象的元素,还有一种更为通用的机制来实现相同的目的,这就是迭代器。 类似于指针类型,迭代器也提供了对对象的间接访问。使用迭代器可以访问某个元素,也可以从一个元素移动到另一个元素。迭代器和指针类似,可进行类比。1.使用迭代器 1.1获取迭代器有专门的类型同时
2015-10-05 10:09:14 496
原创 C++基础编程----2.3标准库类型vector
标准库类型vector1.1vector概念 (1)标准库类型vector表示对象的集合,其中所有的对象的类型都相同。集合中每个对象都有与之对应的索引号,索引用于访问对象。vector因为能容纳多个对象,所以又称为“容器”。 (2)想使用vector,必须包含相应的头文件:
2015-10-04 19:14:46 572
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人