摘要:1. 特点 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对。它提供基于key的快速检索能力。 map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 map的具体实现采用红黑树变体的平衡二叉树的数据结构。在插入操
阅读全文
摘要:1. 特点 set是一个集合容器,其中所包含的元素是唯一的,集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 set采用红黑树变体的数据结构实现,红黑树属于平衡二叉树。在插入操作和删除操作上比vector快。 set不可以直接存取元素。(不可以使用at.(pos)与
阅读全文
摘要:1. 特点 最大值优先级队列、最小值优先级队列 优先级队列适配器 STL priority_queue 用来开发一些特殊的应用,请对stl的类库,多做扩展性学习 2. 方法 priority_queue<int, deque<int>> pq; priority_queue<int, vector<
阅读全文
摘要:1. 特点 双向链表 不可以随机存取元素,所以不支持at.(pos)函数与[]操作符。It++(ok) it+5(err) 2. 默认构造 list采用采用模板类实现,对象的默认构造形式:list lstT; 如: list lstInt; //定义一个存放int的list容器。 list lstF
阅读全文
摘要:1. 特点 先进先出 使用deque实现 2. 默认构造 queue采用模板类实现,queue对象的默认构造形式:queue queT; 如: queue queInt; //一个存放int的queue容器。 queue queFloat; //一个存放float的queue容器。 queue qu
阅读全文
摘要:1. 特点 先进后出 使用deque实现 2. 默认构造 stack采用模板类实现, stack对象的默认构造形式: stack stkT; stack stkInt; //一个存放int的stack容器。 stack stkFloat; //一个存放float的stack容器。 stack stk
阅读全文
摘要:1. 特点 双端数组,而vector是单端的。 头部和尾部添加或移除元素都非常快速。但是在中部安插元素或移除元素比较费时。 2. 默认构造 deque采用模板类实现,deque对象的默认构造形式:deque deqT; deque deqInt; //一个存放int的deque容器。 deque d
阅读全文
摘要:1. 特点 动态数组 可以随机存取元素(支持索引值直接存取, 用[]操作符或at()方法 尾部添加或移除元素非常快速。但是在中部或头部插入元素或移除元素比较费时 2. 默认构造函数 vector采用模板类实现,vector对象的默认构造形式 vector vecT; vector vecInt; /
阅读全文
摘要:1. 特点 string是对char *的封装,使用string有如下好处 1)不用考虑内存释放和越界 2)提供了一系列的字符串操作函数 2. 构造函数 默认构造函数: string(); //构造一个空的字符串string s1。 拷贝构造函数: string(const string &str)
阅读全文
摘要:1. 简介 STL的从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器), 容器和算法通过迭代器可以进行无缝地连接。 STL详细的说六大组件 –容器(Container) –算法(Algorithm) –迭代器(Iterator) –仿函数(Func
阅读全文
摘要:0. cpp 对 带缓存的输入输出的改进 c printf scanf 的缺点: 无法检查类型,如 print("%s", a); a可以是 int 类型,也能编译通过。 无法扩展,如 希望 自定义一个 %v 输出某个结构体类型。 cpp的流系统解决了如上问题 cpp的流系统如下 常用头文件,和提供
阅读全文
摘要:1. 简介 当程序某个函数出错,但处理错误的逻辑在另一个函数,则使用异常。 2. 异常格式 抛出异常 当发生异常时,使用 throw 抛出一个对象。对象是堆内存,所以可以跨函数访问。 void func() { throw 表达式; } 捕获异常 try { 需要保护的程序; } catch (类型
阅读全文
摘要:1. c和c++的类型转换 c只有编译时类型转换,包括隐式类型转换和显示类型转换。 cpp有编译时类型转换,和运行时类型转换,和const类型转换, static_cast 编译时类型转换,效果相当于c的隐式转换 reinterpret_cast 编译时类型转换,效果相当于c的显示类型转换 dyna
阅读全文
摘要:1. 模板函数 1.1 示例 #include <iostream> using namespace std; template <typename T> void myswap(T &a, T &b) { T c; c = a; a = b; b = c; } template <typename
阅读全文
摘要:1. 继承和访问控制 1.1 访问控制的管道 | | public成员 | protected成员 | private成员 | | | | | | | public继承 | public = 子类内外皆可访问 | protected = 只能子类内和父类内访问 | private = 只能父类内访问
阅读全文