摘要: 一、堆栈(stack) stack -> vector/deque/list push -> push_back pop -> pop_back top -> back empty/size... -> empty/size stack > si; stack > ss; stack > st; stack st; // 默认底层容器d... 阅读全文
posted @ 2014-06-10 20:59 xianbing 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 一、向量 ... 10.size/resize/clear/capacity/reserve 1)向量的大小可增可减,使向量大小改变的函数包括:resize/push_back/pop_back/clear/insert/erase。 2)向量的容量只增不减,只能通过reserve函数手动改变向量的容量。 3)向量的大小的增加可以引发容量的增加,但是容量的改变不会引起大... 阅读全文
posted @ 2014-06-10 20:58 xianbing 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 一、模板与继承 1.从模板类派生模板子类 2.为模板子类提供基类 二、容器和迭代器 以链表为例。 三、STL概览 1.十大容器 1)向量(vector):连续内存,后端压弹,插删低效 2)列表(list):链式存储,前后压弹,插删高效 3)双端队列(deque):连续内存,前后压弹,插删折中 以上三种合称线性容器。 4)堆栈(stack):后... 阅读全文
posted @ 2014-06-10 20:56 xianbing 阅读(340) 评论(0) 推荐(0) 编辑
摘要: data1: 12 26 37 i data2: 24 30 j data3: 12 24 26 30 37 一、归并排序 平均时间复杂度O(2NlogN),稳定,对数据有序性不敏感,非就地排序,不适用于对海量数据进行排序。 二、线性查找 1.算法:逐个比较,找到为止。 2.评价:O(N),对数据的... 阅读全文
posted @ 2014-06-10 20:55 xianbing 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 一、二叉树 1.基本特征 1)树型结构的最简模型,每个节点最多有两个子节点——左子节点和右子节点。 2)单根性,每个子节点有且仅有一个父节点,整棵树有且仅有一个根节点。 3)递归性,以任何一个节点为根都可以看做是一个二叉树,整个二叉树可以看成是由若干子二叉树按照递归的结构复合而成。这种结构的递归性决定了采用递归的算法解决二叉树问题会非常简单。 2.基本操作:按照特定的规... 阅读全文
posted @ 2014-06-10 20:52 xianbing 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 一、数据结构 程序设计=数据结构+算法 1.逻辑结构 1)集合:元素之间没有联系。 2)线性结构:元素之间存在前后顺序。 3)树形结构:元素之间存在一对多的父子关系。 4)图状结构:元素之间存在多对多的映射关系。 2.物理结构 1)顺序结构:用连续的空间存放数据元素。 优点:便于随机访问。 缺点:空间利用率低,插入删除不方便。 2)链... 阅读全文
posted @ 2014-06-10 20:50 xianbing 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 一、程序的错误 1.编码错误:编译阶段 2.设计错误:测试阶段 3.环境错误:使用阶段 4.应用错误:测试和使用阶段 二、错误处理机制 1.通过返回值处理错误 当一个函数在执行过程中发生了某种错误,通过函数的返回值告诉函数调用者。 malloc/fopen - 成功返回有效指针,失败返回NULL 返回无效值表示失败 返回0表示成功,返回-1表示... 阅读全文
posted @ 2014-06-10 20:49 xianbing 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 一、多重继承 1)子类同时拥有两个或两个以上的基类,同时继承了所有基类的属性和行为。 销售员 经理 \ / 销售经理 汽车 客用特性 商用特性 \ | / 公共汽车 2)内存结构,按照继承表的顺序,从低到高地址一次排列各个基类子对象。将子类对象的地址隐式或者静态转换为基类指针,编译器会做地址计算,... 阅读全文
posted @ 2014-06-10 20:46 xianbing 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 一、下标操作符 A a (...); cout )运算符 class PA { public: PA (A* pa) : m_pa (pa) {} ~PA (void) { delete m_pa; } private: A* m_pa; }; void foo (void) { PA pa (new A (...));... 阅读全文
posted @ 2014-06-10 20:44 xianbing 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 一、单例模式 二、成员指针 class Student { public: string m_name; void print (void) { ... } }; 1.指向成员变量的指针 成员变量类型 类名::*指针变量名; string Student::*pname; pname是一个指向Student类中string类型成员变量... 阅读全文
posted @ 2014-06-10 20:42 xianbing 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 一、this指针 1. 2.应用场景 1) 2)将this指针作为函数的参数。一个对象可以通知另一个对象有关自身的地址。 教师 提问|^ V|答案 学生 交叉类问题: class B; // 短式声明 class A { B*/B& }; class B { A*/A& }; ... 阅读全文
posted @ 2014-06-10 20:37 xianbing 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 一、面向对象编程 1.什么是对象?什么是对象编程? 1)万物皆对象 2)世界是由一组相互之间紧密联系的对象组成的。 3)通过将对象按照属性和行为共性进行分类,达到将具体事物进行抽象的效果。 4)通过程序的语法表达对象属性和行为的抽象——面向对象。 5)将面向对象的思想应用于编程的过程——面向对象编程(OOP)。 2.为什么要面向对象? 1)面向对象的编... 阅读全文
posted @ 2014-06-10 20:35 xianbing 阅读(255) 评论(0) 推荐(0) 编辑
摘要: 一、堆内存的动态分配与释放 malloc/calloc/realloc/free new/delete:详见memory.cpp 1.通过new运算符分配单个变量 数据类型* 指针变量 = new 数据类型(初值); 2.通过new运算符分配数组 数据类型* 指针变量 = new 数据类型[数组长度] {元素初值, ...}; 3.对于单个变量用delete... 阅读全文
posted @ 2014-06-10 20:31 xianbing 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 机械计算器->电子计算机->面向硬件-> 面向指令->面向过程->面向对象->面向问题 Algo68 - 算法 -> Fortran CPL BCPL B C C++ 一、课程简介 1.C++语法基础(6-7)... 阅读全文
posted @ 2014-06-10 20:26 xianbing 阅读(224) 评论(0) 推荐(0) 编辑