zhqherm

导航

2020年1月6日 #

STL源码笔记2 —— traits

摘要: STL源码笔记2 —— traits 简介 在stl的源码中,广泛用到了traits这个字样,用来表达一个萃取的方法的描述。traits在stl中的用途一般有几种,包括对应迭代器iterator的iterator traits,对应类类型的type traits,针对指针pointer的pointe 阅读全文

posted @ 2020-01-06 23:18 zhqherm 阅读(241) 评论(0) 推荐(0) 编辑

STL源码笔记1 —— allocators

摘要: STL源码笔记1 —— allocators 简述 allocators是STL中很重要的一个幕后英雄的角色,STL中的容器在使用过程中需要不断的放元素进去和取元素出来,而在此过程中,如何更高效的申请和释放内存是十分影响STL容器的性能的。 operator new() 和 malloc() 首先内 阅读全文

posted @ 2020-01-06 15:15 zhqherm 阅读(518) 评论(0) 推荐(0) 编辑

2019年12月16日 #

C++笔记(2) —— 动态内存

摘要: C++笔记(2) —— 动态内存 简述 静态内存用来保存局部static对象、类static数据成员、和函数之外的变量,而栈内存用来保存函数内的非static对象。这两部分内存都是经由编译器自动创建和销毁的,而除此之外还有一个内存池,一般被称为堆,是用来存储动态分配的对象。这些对象需要交由程序自己控 阅读全文

posted @ 2019-12-16 23:06 zhqherm 阅读(100) 评论(0) 推荐(0) 编辑

C++笔记(1) —— 模板

摘要: C++笔记(1) —— 模板 简述 面向对象编程(OOP)和泛型编程(GP)是C++语言的两个不同分支,而模板就是C++泛型编程的基础。模板就等于是一个类或者函数的基本公式,在编译时就能获知具体类型从而展开成对应的一份代码。 模板在什么地方使用,如何使用,想法也很简单。在设计一个类或者函数的时候,如 阅读全文

posted @ 2019-12-16 23:04 zhqherm 阅读(106) 评论(0) 推荐(0) 编辑

2019年12月8日 #

常用排序算法(3) - 快速排序

摘要: 常用排序算法(3) 快速排序 快速排序 算法描述 快速排序,是历史上实践中最快的泛型排序算法,虽然其平均运行时间为O(n log n),而最坏情形下性能为O(n^2),但由于高度优化的内部循环,一般经过优化的快速排序不会出现这种最坏情形。快速排序也是一种分治的递归算法,它的基本步骤如下: 从无序数组 阅读全文

posted @ 2019-12-08 23:48 zhqherm 阅读(209) 评论(0) 推荐(0) 编辑

常用排序算法(2) - 堆排序,归并排序

摘要: 常用排序算法(2) 堆排序,归并排序 堆排序 算法描述 堆排序的实现就是利用优先队列的原理达到O(n log n)的复杂度进行排序。那么对于一个无序数组,首先我们要做的是建立一个二叉堆,这个阶段需要O(n)的复杂度。然后对这个已经建立好的堆进行deleteMax操作,就可以把最大元素移除放到另外一个 阅读全文

posted @ 2019-12-08 23:47 zhqherm 阅读(207) 评论(0) 推荐(0) 编辑

常用排序算法(1) - 插入排序,希尔排序

摘要: 常用排序算法(1) 插入排序,希尔排序 插入排序 算法描述 插入排序,顾名思义,就是将一个元素插入到一个有序队列里面,保持插入后队列依然保持有序。那么当我们拿到一个无序队列的时候,可以先将第一位看做是一个单元素的有序队列,然后把第二位插入这个有序队列中,随后这两个元素就变成了一个有序队列,然后重复同 阅读全文

posted @ 2019-12-08 23:38 zhqherm 阅读(182) 评论(0) 推荐(0) 编辑

2019年11月24日 #

LeetCode解题总结(2)

摘要: LeetCode解题总结(2) 6. ZigZag Conversion The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like this: (you may want to 阅读全文

posted @ 2019-11-24 22:21 zhqherm 阅读(122) 评论(0) 推荐(0) 编辑

LeetCode解题总结(1)

摘要: LeetCode解题总结(1) 序 最近在对以前学过做过的东西做一些总结和回顾,为了检验学习成果和查漏补缺,开启了一段刷题之路。 1. Two Sum Given an array of integers, return indices of the two numbers such that th 阅读全文

posted @ 2019-11-24 22:19 zhqherm 阅读(153) 评论(0) 推荐(0) 编辑

2019年11月18日 #

部分内存泄露与内存崩溃原因

摘要: 部分内存泄露与内存崩溃原因 分析 内存管理是c++中无法避免的问题,因为语言本身基本没有自动的内存管理,所以如何更好的管理内存,发现潜在的容易引起内存问题的地方是十分重要的一个部分。 内存分配方式 c++里面内存分为5个部分,分别是堆、栈、自由存储区、全局/静态存储区、常量存储区。 常量存储区: 在 阅读全文

posted @ 2019-11-18 21:31 zhqherm 阅读(1040) 评论(0) 推荐(0) 编辑