随笔分类 -  C++理论随手记

日常积累知识点
摘要:单链表,弄清楚可stl中list的区别 ListNode的结构 如何向ListNode中插入新的结点:从键盘输入 逆序输出所有元素 阅读全文
posted @ 2018-05-09 17:24 小雪SS 阅读(35546) 评论(0) 推荐(0) 编辑
摘要:简介: 一棵AVL树有如下必要条件: 条件一:它必须是二叉查找树。(左<根<右) 条件二:每个节点的左子树和右子树的高度差至多为1。 AVL相关概念: 平衡因子:将二叉树上节点的左子树高度减去右子树高度的值称为该节点的平衡因子BF(Balance Factor)。 对于平衡二叉树,BF的取值范围为[ 阅读全文
posted @ 2018-05-08 16:30 小雪SS 阅读(889) 评论(0) 推荐(0) 编辑
摘要:红黑树简介: 所谓红黑树,就是平衡的扩充二叉搜索树,红黑树与AVL都是BST的平衡版本,相比AVL的完全平衡,红黑树只要求局部平衡,因此当向红黑树中插入和删除节点时,需要的调整比AVL要少,统计性能要好于AVL树,C++ STL中的map、set、multimap和multiset都应用了红黑树的变 阅读全文
posted @ 2018-05-08 14:27 小雪SS 阅读(196) 评论(0) 推荐(0) 编辑
摘要:内存池出现原因:内存碎片 首先我们需要明确, 内存池的目的到底是什么? 首先你要知道的是, 我们每次使用new T来初始化类型T的时候, 其实发生了两步操作, 既然内存分配耗时, 那我们很容易想到的就是一次性分配一大块内存, 然后在用户需要的时候再划分其中一部分给用户, 这样的话, 一次分配, 多次 阅读全文
posted @ 2018-05-08 11:00 小雪SS 阅读(5699) 评论(0) 推荐(1) 编辑
摘要:1.1 特性 2.1 迭代器 unordered_map的迭代器是一个指针,指向这个元素,通过迭代器来取得它的值。 它的键值分别是迭代器的first和second属性 所以这里‘.'和’->‘是有区别的:->是间接地址取值符;.是直接地址取值符。 与map相比,运行时间和占用率都比较少 参考文章: 阅读全文
posted @ 2018-05-06 16:51 小雪SS 阅读(184) 评论(0) 推荐(0) 编辑
摘要:map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,map中的元素是自动按Key升序排序,所以不能对map用sort函数; map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点 阅读全文
posted @ 2018-05-06 11:49 小雪SS 阅读(181) 评论(0) 推荐(0) 编辑
摘要:当缓冲区中有残留数据时,cin函数会直接去读取这些残留数据而不会请求键盘输入。而且,回车符也会被存入输入缓冲区中。 c++用于清空输入缓存的函数有三个:cin.clear(),cin.sync(),cin.ignore()。 cin.clear()是用来更改cin的状态标示符的,cin在接收到错误的 阅读全文
posted @ 2018-05-04 17:06 小雪SS 阅读(1340) 评论(0) 推荐(0) 编辑
摘要:目录 阅读全文
posted @ 2018-05-03 10:44 小雪SS 阅读(203) 评论(0) 推荐(0) 编辑
摘要:leetcode练习时,总会发现运行时间短的代码都会有类似: 所以对这几句代码做了了解: 这个函数是一个“是否兼容stdio”的开关,C++为了兼容C,保证程序在使用了std::printf和std::cout的时候不发生混乱,将输出流绑到了一起。 cin,cout之所以效率低,是因为先把要输出的东 阅读全文
posted @ 2018-05-01 14:00 小雪SS 阅读(4883) 评论(0) 推荐(0) 编辑
摘要:stringstream可以吞下不同的类型,然后吐出不同的类型。 这样可以实现int,string,double等类型的转换 缺点:效率低,运行时间长;由于cin,cout为了兼容C有个同步流。关闭同步流的方法 看来stringstream似乎不打算主动释放内存(或许是为了提高效率),但如果你要在程 阅读全文
posted @ 2018-04-28 17:42 小雪SS 阅读(230) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示