- 博客(26)
- 收藏
- 关注
原创 Linux基础
Linux重定向标准输入的文件描述符为0,标准输出的文件描述符为1, 标准错误的文件描述符为2,默认都是屏幕. 重定向用于将标准输入/标准输出重定向到文件中、管道等中,参考链接: http://www.cnblogs.com/softidea/p/3965093.html http://www.linuxidc.com/Linux/2016-09/134932.htm
2017-11-07 22:26:23 205
原创 STL之map
一、使用自定义的对象作为key以单向链表的节点为例进行说明,声明如下:typedef struct Node{ Node(int Data) : m_Data(Data), pNext(NULL) {} Node *pNext; int m_Data;}Node;因为map容器是基于红黑树实现的,它会根据元素的key值进行排序,因此我们在创建map的时候需要指明key值之间
2017-10-30 22:43:07 447
原创 Trie树(单词查找树)
前言:Tire树,又称之为字典树或者单词查找树。是一种树形结构,是哈希树的变种。典型应用是用于统计、排序或保存大量的字符串(不仅限于字符串),所以经常被搜索引擎系统用于文本词频的统计。因为相同的字符串前缀会共享同一条分支,所以优点是可以利用不同字符串的相同前缀来减少无谓的字符串比较,查找效率比hash表/hash树高。
2017-10-17 23:12:36 369
原创 C++ mutable关键字
引言:对于类的成员函数来说,如果它不修改类的状态,一般将其声明为const函数. 但是如果我们想在类的const成员函数中修改与类的状态无关的成员变量,那么该怎么做呢?答案是使用mutable关键字。
2017-05-07 21:10:12 347
原创 SurfaceFlinger
SurfaceFlinger的消息处理机制SurfaceFlinger类依赖于Android的异步消息处理机制,包含了一个MessageQueue对象(消息队列)用于处理各种异步消息,在onFirstRef()中对消息队列进行了初始化:mutable MessageQueue mEventQueue;//thread safeSurfaceFlinger::onFirstRef(){ m
2017-05-02 21:53:44 1761
原创 C++ 11新特性
initializer_listC++11新增了初始化列表类型initializer_list,可以使用{}来构造初始化列表://构造初始化列表//实际上{0, 1, 2, 3}就是一个初始化列表initializer_list<int> il_01{ 4, 5, 6 };initializer_list<int> il_02 = { 0, 1, 2, 3 };initializer_lis
2017-03-15 22:18:34 248
原创 windows安装程序无法将windows配置为此计算机的硬件上运行
今天用PE为联想Y470安装windows10专业版,镜像部署过程很顺利,重启后提示错误“windows安装程序无法将windows配置为此计算机的硬件上运行”,本以为电脑硬件不支持windows10,于是换装windows7旗舰版,发现同样会报错。试了网上的所有方法都不行,最后还是自己解决了,方法很无脑,如下:解决方法:进入pe,用DiskGenius把联想电脑预分配的两个隐藏分区删掉!!!其中一
2015-12-01 21:13:22 3148
原创 mcc命令没有生成ctf文件的解决方案
MATLAB的以下两个指令可以将MyAdd.m文件转换为.cpp文件,但是生成的文件中并没有ctf后缀的文件。
2015-10-11 21:41:11 2473 1
原创 VS2008/BCGControlBar常见问题解决
前言:本文主要记录在Visual Studio2008融合BCGControlBar进行界面开发中常见的问题及解决方法。
2015-10-11 21:27:33 2762
转载 XML入门
XML(EXtensible Markup Language)是可扩展标记语言的简写,是一种用于标记电子文件,使其具有结构性的标记语言。XML用于结构化传输和存储数据,其焦点是数据的内容;HTML用于显示数据,其焦点是数据的外观,它们都是标准标记语言的子集。
2015-10-11 21:18:39 365
原创 C++强制类型转换和RTTI
前言:C++提供了四种强制类型转换的关键字:const_cast,static_cast,reinterpret_cast和dynamic_cast,下面分别进行介绍。
2015-10-11 21:09:40 462
原创 红黑树
前言:我们知道,对于高度为h的二叉搜索树(BST),其插入、删除、查找、最大、最小等动态集合操作的时间复杂度为O(h);n个节点随机构造的二叉搜索树,其期望高度为logn,最大高度为n(此时树退化为链),所以在最坏情况下,二叉搜索树动态集合操作的时间复杂度为O(n),也不比链表好。那么能否构造一种二叉搜索树使其最坏高度为(logn)级别呢?答案是红黑树。
2015-10-11 20:57:05 328
原创 Trie树(单词查找树)
前言:Tire树,又称之为字典树或者单词查找树。是一种树形结构,是哈希树的变种。典型应用是用于统计、排序或保存大量的字符串(不仅限于字符串),所以经常被搜索引擎系统用于文本词频的统计。因为相同的字符串前缀会共享同一条分支,所以优点是可以利用不同字符串的相同前缀来减少无谓的字符串比较,查找效率比hash表/hash树高。
2015-10-11 20:50:37 1593
原创 堆和堆排序
前言:本章首先介绍了堆的基本概念和性质,而后引出最大堆和最小堆。并以最大堆为例,对堆的常用的操作进行了介绍;下篇文章将基于最大堆实现优先级队列;
2015-10-11 20:33:14 624
原创 STL之next_permutation和prev_permutation函数
前言:STL算法库中提供了两个函数用于求排列组合数,分别是求下一个排列的函数next_permutation和求上一个排列的函数prev_permutation;
2015-08-15 16:17:19 485
原创 进制转换/码制转换和计算机大端和小端模式
十六进制和二进制之间的转换十六进制由0-9和A-F组成,对应于十进制的0-15,对应于二进制为4位;故十六进制和二进制之间的转换比较直接,示例如下: 1. 将二进制转换为十六进制:每4个二进制位为一个段转换为相应的十六进制,如: 二进制数(0001 0010 0011 0100)转换为十六进制数(0x1234); 2. 将十六进制转换为二进制:每个十六进制位对应4个二进制位,直接
2015-08-08 17:02:08 4826
原创 C++基础知识之struct和class的区别
struct是结构体,可以包含不同的数据类型;class是类,两者之间存在着一些主要的差别,如下所示:1. struct的成员默认是public访问类型,而class的成员默认是private类型,这也体系了类的封装性;2. struct也可以继承,但默认是public继承,而class默认是private继承;3. struct一般只有成员变量而没有成员函数,而class既有成员变量也有成员函数;
2015-08-08 16:55:55 590
原创 STL之map
map类在头文件map中,和所有其它的C++标准库一样,头文件没有扩展名。如下声明:#include <map> using namespace std;在STL中,map是一个模板类,public继承于_Tree类。
2015-07-02 11:07:51 360
原创 STL中的二分查找--lower_bound/upper_bound/binary_search
前言: STL中关于二分查找的函数主要有三个,分别是lower_bound/upper_bound/ binary_search。这三个函数都运用于有序区间,当然这也是二分查找思想运用的前提,下面逐一对这三个函数进行剖析。
2015-07-02 10:50:28 904
原创 关于图的广度优先搜索(BFS)和深度优先搜索(DFS)
前言:图的广度优先搜索和深度优先搜索对于获取图的结构信息具有重要的作用,很多图相关的算法都是建立在对图的结构进行搜索的基础上。如最小生成树算法、Dijkstra最短路径算法都采用了和BFS相似的思想。广度优先搜索和二叉树的层序遍历较为相似,需要借助于队列实现;深度优先搜索和二叉树的前序遍历较为相似,需要借助于栈实现;无论是BFS还是DFS,都适用于有向图和无向图。
2015-07-02 10:38:58 40160 3
原创 二叉搜索树(BST)相关知识总结
前言:二叉搜索树是满足如下性质的二叉树:即任何一个节点的左子树节点值都小于根节点值,进而又小于其右子树节点的值。所以,二叉搜索树的中序遍历是有序的。接下来主要介绍二叉搜索树的相关操作,包括创建、插入、删除、查找等;其时间复杂度与树的高度成正比,即O(logn);
2015-07-02 10:31:16 711
原创 有根树相关知识总结之遍历二叉树(C语言描述)
有根树相关知识总结之遍历二叉树(C语言描述)前言:二叉树的遍历方法主要有前序遍历、中序遍历、后续遍历和层序遍历。各算法又可分为递归算法和非递归算法两种,本文将进行区分讨论。从本质上来说,二叉树的深度优先搜索包括了前序遍历、中序遍历和后续遍历;广度优先搜索即是层序遍历。
2015-05-24 10:03:22 662
原创 C++类的大小
C++类所占用的内存空间前言:C++类所占用的内存空间实际上是指类的实例所占用的内存空间。其大小是由类中的成员变量决定的(静态成员变量除外),由于成员函数放到代码区由类的各个实例共享,故成员函数对类占用内存大小没有影响。具体地说,类占用内存大小由以下三个方面决定: 1. 非静态成员变量的内存占用之和 2. 考虑内存对其的问题; 3. 虚函数产生的额外内存开销,即虚函数
2015-05-16 09:11:35 800 2
原创 邻接表图的深度优先搜索
深度优先搜索的非递归算法:主要3.1中只取栈顶元素而不是退栈深度优先搜索的递归算法见《算法导论》: 1. 初始化相关数组:开始时间戳d[],结束时间戳f[],访问标记Visited[]或者颜色数组Color[]; 2. For循环:对于图的每一个顶点执行如下循环体 if(Color[u]==White)
2015-03-03 14:03:59 622
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人