03 2018 档案
摘要:法是用来解决常见问题的方法同一个问题可以采用多种方法解决,不同 方法适用于不同的环境 排序指的是把一组数字按照某种顺序排列好排序算法分很多次重复执行,每次负责把 一个数字放在合适的位置上为了实现以上效果可以先确定数字然后查找 位置也可以先确定位置然后查找数字通过不断调整两个数字的相互顺序最终把 合适
阅读全文
摘要:如果单向线性链式物理结构中每个结点 可以找到多个其他结点就成为了树树里的所有结点可以分成几层,不同层 之间符合线性规律(任意两层之间 有前后顺序)树的最上面一层应该只有一个结点,这个 结点叫做树的根结点根结点可以用来代表整棵树如果树里两个结点之间有直接联系,这种联系 叫做父子关系。其中靠近根结点的叫
阅读全文
摘要:链表也是一种数据结构,它就是用来对链式 物理结构进行管理的链表可以把链式物理结构的管理代码和其他 代码分隔开 链表的功能主要包含插入,删除,查找和遍历
阅读全文
摘要:队列也是一种数据结构队列也可以用来存储数字,这些数字在队列里 也是有顺序的获得的数字一定是最先放进去的数字这种使用规则叫先进先出实现队列的时候需要提供一个函数用来向队列里 放数字(push)实现队列的时候需要提供一个函数用来从队列里 获得数字(pop)
阅读全文
摘要:栈是一种数据结构栈里可以存放数字,这些数字有前后顺序先放到栈里的数字在前面,后放到栈里的 数字在后面从栈里获得的数字一定是最后一个放进去的 数字这种使用数字的方法叫后进先出在实现栈的时候需要提供一个push函数,它 负责向栈里放一个数字在实现栈的时候还需要提供一个pop函数,它 负责从栈里获得一个数
阅读全文
摘要:数据结构研究如何使用存储区解决问题算法研究解决常见问题的方法 数字之间的关系可以从两个完全不同的角度 进行描述逻辑关系(逻辑结构)描述数字之间和计算机 无关的关系物理关系(物理结构)描述存放数字的存储区 之间的关系 逻辑结构分为如下几种1.集合结构:所有数字可以看作一个整体2.线性结构:可以用一条有
阅读全文
摘要:允许键重复的映射,表示一对多的逻辑关系。不支持下标运算符。根据键查找匹配的元素集合:pair<IT, IT> equal_range (KEY const& key); ^ ^ | | begin endbegin指向第一个和参数key匹配的元素;end指向最后一个和参数key匹配的元素的下一个元素
阅读全文
摘要:1)逻辑模型:一一对应,键(信息索引)值(信息内容)对,用于信息检索,检索性能可以对数级(O(logN))。2)物理模型:平衡有序二叉树,又名红黑树。5 4 3 2 1 3 2 41 53)键必须是唯一的。4)迭代过程实际上是关于键的中序遍历(L-D-R),键升序。5)存储单位是由键和值组成的pai
阅读全文
摘要:#include <queue>using namespace std;priority_queue<元素类型[[,底层容器类型],比较器类型]> 优先队列对象 (构造实参表);底层容器:vector/deque(默认)优者先出,默认以大者为优,也可以通过比较器定制优先级。首 >尾50 45 40
阅读全文
摘要:#include <stack>using namespace std;stack<元素类型[,底层容器类型]> 堆栈对象(构造实参表);底层容器:vector/deque(默认)/listpush -> push_backpop -> pop_backtop -> backsize -> size
阅读全文
摘要:#include <queue>using namespace std;queue<元素类型[,底层容器类型]> 队列对象(构造实参表);底层容器:deque(默认)/listpush -> push_backpop -> pop_frontback -> backfront -> frontsiz
阅读全文
摘要:1)唯一化void unique (void);将连续重复出现的元素做唯一化。2)排序void sort (void); // 通过"<"比大小void sort (LESS less); // 通过比较器less比大小3)拆分将参数列表中的部分或全部元素剪切到调用列表中。void splice (
阅读全文
摘要:相对与向量双端队列唯一的区别就是首端和尾端同样都是开放的,因此它同时提供在首尾两端增删元素的接口。push_front/pop_frontpush_back/pop_back双端队列的内存开销和时间性能上略逊于向量。
阅读全文
摘要:1)基本特性A.连续内存,下标访问。B.动态内存管理,静态预分配。2)实例化#include <vector>using namespace std;A.空向量vector<元素类型> 向量对象;vector<int> vi;大小为0,元素数为0,向量对象的字节大小是一个常量——12字节。 B.初始
阅读全文
摘要:1.概述1)十大容器A.线性容器:向量(vector)、双端队列(deque)、列表(list)B.适配器容器:堆栈(stack)、队列(queue)、优先队列(priority_queue)C.关联容器:映射(map)、多重映射(multimap)、集合(set)、多重集合(multiset) 2
阅读全文
摘要:1.概念1)容器:利用类模板构建的一组泛型化的数据结构。2)泛型算法:利用函数模板构建的一组与元素和容器的类型无关的通用算法。3)迭代器:利用操作符重载为不同的容器提供接口一致的元素访问方式,协助泛型算法做到容器无关。2.实现案例双向线性链表正向顺序可写迭代器线性查找
阅读全文
摘要:1.模板参数的缺省值1)模板参数可以带有缺省值,在未提供相应类型实参的情况下取缺省值。如果某个模板参数带有缺省值,那么它后面的所有模板参数必须都带有缺省值。2)与函数调用参数的缺省值不同,模板参数的缺省值可以来自其前面的参数。3)C++98不允许为函数模板的模板参数指定缺省值,但是C++2011可以
阅读全文
摘要:如果一个类的成员变量的类型、成员函数返回值、参数表、局部变量的类型、类的成员类型甚至基类的类型,用参数表示,那么这个类就是一个类模板。1.定义template<typename 类型形参1,typename 类型形参2, ...>class 类模板名 [: 继承表] { 成员变量 成员函数 成员类型
阅读全文
摘要:1.定义template<typename 类型形参1,typename 类型形参2, ...>返回类型 函数模板名 (调用形参表) { 函数体}在函数模板的返回类型、调用形参表以及函数体中都可以使用该模板的类型形参。例如:template<typename A, typename b, typen
阅读全文
摘要:1.类型别名 旧语法:typedef 源类型 目标类型;(源类型必须是具体的类型) typedef unsigned int unit_t; 新语法:using 目标类型=源类型;(源类型可以是模板) using unit_t=unsigned int; 旧语法中的typedef其源类型必须是具体类
阅读全文
摘要:1.语法形式 lambda表达式定义了一个匿名函数,其本质就是一个匿名的彷函数对象: [ 捕获表 ](参数表) 选项 -> 返回类型 { 函数体 } 嵌入式函数 [] (int x) ->{return x*x;};//实现了小括号运算符的类对象 cout<< [] (int x) ->{retur
阅读全文
摘要:1.左值和右值 可以取地址的值就是左值,左值通常带名字; 不可以取地址的值就是右值,右值通常匿名 2.左值引用和右值引用 (1)左值引用只能引用左值,不能引用右值 类型 &左值引用=左值 int a; int &lvr=a; int &lvr=10;//error (2)右值引用只能引用右值,不能引
阅读全文
摘要:范型元组 tuple 可以理解为是对老版本pair类模板的扩展,其中的元素个数不再限于两个,而且功能更加丰富 tuple:构造tuple对象所保存的只是构造实参的拷贝 make_tuple:构造tuple对象所保存的只是构造实参的拷贝 tie:通过tie构造的tuple对象,保存构造实参的可写引用
阅读全文
摘要:1.ini文件的读写 2.txt文件的读写(1)分割字符串 (2)文件有多列相同含义 (3)文件有2列 (4)文件有多列不同含义 (5)文件内容具有相同含义 3. 得到当前目录 4.遍历文件(1)读取文件内容 (2)读取文件名字 (3)找到文件读取文件 (4)文件拷贝
阅读全文
摘要:1 C语言里可以在一个存储区里记录多个相关数字这种存储区的类型叫结构体类型,这种类型需要首先创建出来然后才能使用 2 结构体类型存储区里包含多个子存储区,每个子存储区可以记录一个数字,结构体中不同子存储区的类型可以不同,子存储区甚至也可以是结构体类型的存储区 3 结构体声明语句可以用来创建结构体类型
阅读全文