- 博客(220)
- 资源 (6)
- 收藏
- 关注
原创 C++11之lambda的初探
1 Lambda结构2 关于capture3 关于parameter4 关于mutable5 throw()6 返回值7 函数体
2017-03-17 17:55:26
825
原创 基于广度优先搜索的拼图游戏算法
1 问题描述拼图游戏,通常简单的也叫做八数码问题,就是解决如何通过移动有限的步数,从图的一个状态移动到另外一个状态,如下面的图所示:2 问题解决的思路一个简单的思路就是采取广度优先搜索算法,算法思路如下所示: 把起始状态图存储在哈希表中; 把起始状态加入队列当中; 循环判断当前状态是否等于结束状态
2017-03-16 02:31:15
2563
原创 基于贪心策略的活动选择问题
关于活动选择的问题:1:问题描述n个活动都有自己的开始和结束时间,但是每个活动都是占用同一个教室,问怎么安排活动能够使一天内安排的活动总数最多。2:算法解决思想活动总共是从1到n总共n个,假设Sij表示的是活动ai结束之后,aj开始之前的全部活动,现在我们来求Sij的一个最大兼容活动子集。假设Aij是满足这样条件的一个最大活动子集,并且它包含了活动ak。那么可以
2017-03-16 01:09:08
1294
原创 动态规划算法
1 动态规划的思想动态规划也是采取的分治的思想,关键点就在于怎么去分。在钢管分割的问题上,可以这样去思考问题,假设钢管长度为N,最优解是将其分割为k段。那么当将钢管分割为2段时,我们假设x = L(1) + L(2) + ... + L(p), y = L(p+1) + L(p+2) + ... + L(k)。则必然是L(1) + L(2) + ... + L(p)是长度为x的最优
2017-03-16 00:52:19
640
原创 c语言扫雷程序
用c语言实现一个扫雷程序,有挑战性的主要有两部分内容:游戏的逻辑,空白区域的炸开算法 1.游戏核心逻辑观察Windwos的扫雷游戏,可以知道,一个格子有两种类型的状态需要描述,一种类型是这个格子是否有雷,另外一种状态是格子的绘制状态,这个类型就多了,格子上可能显示未知,数字,空白,旗帜,疑问,雷,一共是6种类型。2.空白区域炸开算法关于空白区域的炸开,至于炸到什么程度为止,通过观察
2017-03-15 22:35:24
6648
1
原创 c++11多线程编程之condition_variable
c++11多线程编程之condition_variable主要从一个问题出发,编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。这里可以用c++11的条件变量来解决问题。涉及到的知识点包括:1.std::unique_lock首先介绍unique_loc
2017-03-05 17:15:43
1205
原创 eclipse cdt launch failed
在使用eclipse 的CDT进行C++的编译的时候,正确的设置了环境变量,可以执行程序的时候总是出现这样的鬼结果,内心不爽,去掉自动编译,点击build,发现出现Program "g++" not found in pathProgram "gcc" not found in path的错误但是g++以及gcc明显已经存在C:\MinGW\bin的环境变量中,what's w
2016-03-31 11:14:02
737
原创 linux 重定向
linux的重定向1 文件描述符与标准输入(stdin),标准输出(stdout),标准错误(stderr)内核用文件描述符来访问文件,文件描述符是非负整数,打开文件,新建文件,内核会返回一个文件描述符,读写文件也需要文件描述符来指定特定的文件。stdin的文件描述符是0,stdout的文件描述符是1,stderr的文件描述符是2.在默认情况下stdin连接到键盘,stdout连接
2015-10-14 09:33:51
746
原创 linux命令概论
1 linux中命令的种类可执行文件shell内置命令shell函数alias命令2 查看命令类型可以使用shell命令typetype command示例如下:xxx@LinuxDDD:/$ type cdcd is a shell builtinxxx@LinuxDDD:/$ type cpcp is hashed (/bin/cp)xxx@Li
2015-10-12 19:07:37
815
原创 文章标题
Linux中的硬链接和软链接硬链接和软链接都是linux中对文件方便操作的一种技术,硬链接简单来说就像是对文件器别名,文件的每一个别名都相当于一个硬链接,只有删除所有的硬链接后文件才会被删除。软链接也被称为符号连接,它本质是就是一个文件,当把源文件删除的时候,软链接在使用中就会出错,这有点类似指针,一个变量可以有多个指针指向它,当变量被释放的时候,指针就变成野指针。要深入了解硬链接和软链接需要对li
2015-10-12 15:24:42
552
原创 Linux命令之管道
linux 中的管道命令操作符 ‘|’格式:command1 | command2 | command3 | ……作用:将上一个命令的输出作为下一个命令的输入特征:此时的命令被称为过滤器,通常是stdin作为输入,stdout作为输出,管道起着连接输入输出的作用实例:通过以上例子可以明显的看出‘|’的作用
2015-10-09 10:10:07
541
原创 Ubuntu15.04安装samba
1 安装所需组件sudo apt-get install samba sudo apt-get install cifs-utils sudo apt-get install samba-common2 创建共享文件mkdir /home/xxx/share sudo chmod 777 share/ 3 备份以及修改配置文件sudo cp /
2015-10-09 09:58:25
1014
原创 从u盘创建乌班图启动盘并且安装乌班图
U盘制作Ubuntu的启动盘1 下载乌班图的ISO文件2 准备一个u盘,其可用存储保证在2GB以上3 在乌班图系统中搜索Startup Disk Creater4 点击‘other’选项并且选择之前下载的Ubuntu的iso文件并点击‘open’5 点击底部的‘Make Startup Disk’6 等待少许时间就制作好了Ubuntu的启动盘从U盘安装Ubuntu1
2015-10-08 15:06:58
4367
原创 乌班图修改hostname
乌班图下修改hostname比较简单,有两种修改模式,一种是暂时的修改,一种是永久的修改1 暂时性的修改:hostname XXX2 永久的修改打开/etc/hostname文件,这个文件保存的是linux的hostname,你可以将其修改为你想要的任意名字,例如xxx。注意,这个是针对乌班图操作系统的,至于其它的linux操作系统会有一些不同。
2015-10-08 14:40:33
1202
原创 Handler解析
Handler 允许你发送和处理消息或者跟线程相关的Runable对象。每一个Handler实例被一个单线程以及线程的消息队列关联。当你创建一个新的Handler的时候,它被绑定到创建它的线程以及对应的消息队列。从这一点讲它们传递消息和runables到消息队列并且处理它们当它们从消息队列中出来的时候。Handler有两个作用:(1)调度消息和runable使其在以后某个时间点被执
2015-09-17 16:50:55
793
原创 Looper解析
这个类被用来做一个线程的消息循环。线程默认 情况下没有消息循环和其自身关联,为了创建一个消息循环可以采用下面的demo。 1 Looper的使用class LooperThread extends Thread { public Handler mHandler; public void run() { Looper.prepare();
2015-09-17 16:40:12
774
原创 Message解析
Message解析1 数据成员public int what; //用户自定义消息码,每个Handler都有自己的命名空间,所以无需担心和其它Handler发生冲突public int arg1; //当仅仅需要存贮少量的整数值的时候arg1可以用来替代setData()函数,它优点是消耗低,效率高public int arg2; //当仅仅需要存贮少量的整数值的时候arg2可
2015-09-17 16:30:48
1387
原创 乌班图14.04安装搜狗输入法
之前一直在忙硕士毕业论文的事情,很久很久没写博客了,大概有几个月了吧。如今刚刚工作,万事都在摸索中,不知道是怎么回事,我还没有适应过来。现在重新拾起我的博客了,我要坚强。 在乌班图上安装搜狗输入法跟在Windows上安装输入法还是有些不同的,不过还是搜狗的帮助文档还是很详细的,安装具体见 http://pinyin.sogou.com/linux/help.php不过安装完后需要重新登
2015-08-11 09:44:38
3011
原创 Fatal Error 1083
在VS2010中编译项目,出现Fatal Error 1083的错误,具体就是找不到xxx文件,刚开始百思不得其解,后来才找到问题的解决方法。出错的原因:我在项目中有几个文件夹,例如A,B,C。我后来把B文件夹中的一个文件xxx剪切移动到了C中,然后在编译中就出现了Error 1083的错误,提示找不到 B/xxx。解决方法:我首先尝试重新再B中添加xxx文件,但是
2015-02-01 12:45:58
4726
原创 C++嵌套类的使用
C++的嵌套类意思就是类中定义的类,它和外围类的成员类似,也被相应的访问权限修饰符修饰。1 嵌套类可以直接方位外围类中的static成员变量。2 嵌套类可以通过引用,指针,或者对象来访问外围类的成员,不管该成员是public,private,protected。3 嵌套类被private修饰的时候就不能在用户代码中被定义对象,因为是private的4 外围类对嵌套类的非public
2015-01-29 19:27:00
2414
原创 C++虚函数访问权限的改变
如果在基类中虚函数的访问权限是一种情况,那么派生类在继承基类的时候,派生类可以重新定义基类虚函数的访问权限,经过实例验证是正确的。从这里也说明了函数的覆盖或者说重定义跟前面的访问权限修饰没多大关系//Base.h#pragma once#include using namespace std;class Base{public: Base(void){
2014-12-14 16:17:04
3149
原创 D3D顶点混合时FVF的一些问题以及对微软的一些批评
在使用固定管道的顶点混合时候,会出现种种问题,比如:在指定D3DFVF_XYZBn的时候,权重是写n个还是n-1个,矩阵的索引该怎么设置才正确,DWORD类型的索引值应该跟在谁后面,还有D3DFVF_LASTBETA_UBYTE4这个FVF到底该怎么使用才正确,矩阵面板上的256个索引怎么才能随心所欲的使用,接下来就根据程序一一解决这些疑惑。 一 问题以及答案1 权重到底该写几个?
2014-12-08 18:00:22
2943
原创 HLSL的基础语法
HLSL的基本语法1 数据类型1.1 标量类型1. bool: True or false .Note that the HLSL provides the true and false keywordslike in C++.2. int: 32-bit signedinteger.3. half: 16-bit-floatingpoint number.4. flo
2014-12-03 22:23:41
17182
原创 error C1189以及warning MSB8012
今天在将一个VS2003的工程转化为VS2010的时候,出了一些问题。首先是:fatal error C1189: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403. Value 0x0501 or higher is recommended.其次是:warning MSB8012
2014-12-03 20:15:07
1855
原创 SetStreamSource的解惑
SetStreamSource的解惑HRESULT SetStreamSource( [in] UINT StreamNumber, [in] IDirect3DVertexBuffer9 *pStreamData, [in] UINT OffsetInBytes, [in] UINT Stride);这个是DirectX中SetStreamSourc
2014-11-26 22:42:40
2438
原创 Direct3D中绘制图元的两种方式
DirectX 中绘制图元有两种类型的函数,一个是DrawPrimitiveUp,一个是DrawPrimitive,当然跟索引相关的也有两个类似的函数,一个DrawIndexedPrimitiveUp,一个是DrawIndexedPrimitive;HRESULT DrawPrimitiveUP( [in] D3DPRIMITIVETYPE PrimitiveType,
2014-11-26 19:59:23
2216
原创 C++模板实现的AVL树
1 AVL树的定义AVL树是一种自平衡二叉排序树,它的特点是任何一个节点的左子树高度和右子树的高度差在-1,0,1三者之间。AVL树的任何一个子树都是AVL树。2 AVL树的实现AVL树本质是一种二叉排序树,所以二叉排序树的任何性质AVL树都具有,但是AVL树稍微复杂的地方就是AVL树必须满足平衡条件,具体跟BST不同的地方主要体现在插入,删除操作。插入操作:当插入之后可能会出现不
2014-11-03 18:40:41
3370
原创 美团面试题:寻找数组置尾操作的最小值
题目:一个递增的整形数组,现在的操作是每次从数组的开头取出一个元素放在数组的末尾,连续n次这样的操作后得到一个新的数组,现在把这个数组给你,请求出最少移动的次数。解析:1 最容易想到的方法就是依次遍历这个数组,找到最小值的位置,这样的时间复杂度就是O(n)。2 考虑到事先是排好序的,所以我们可以使用二分查找法来实现这个操作,只不过是这个二分查找法是传统二分查找法的变种。
2014-10-27 18:43:50
1361
原创 二叉树的层次遍历
问题:如何实现二叉树的层次遍历?解析:我们可以使用队列来解决这个问题将根节点压入队列判断队列是否为空不为空则获取队列最前端的元素,打印出该元素将该元素移除队列如果该元素有左孩子,则将其左孩子进入队列如果该元素有右孩子,则将其右孩子进入队列主要函数如下所示:template void BSTrees::traverseLevel(Node* root){
2014-10-27 15:05:01
1227
原创 去哪儿网的一道面试题:找出字符串出现最多的字符
问题:给定一个字符串,要求把字符串中出现次数最多的字符打印出来。分析:不置可否,肯定要统计每个字符出现的次数,然后根据字符出现次数的大小打印出出现次数最多的字符,另外需要注意的是出现次数最多的字符个数可能不止一个。解决方案:1 最容易想到的就是建立一个map,字符作为key,初始化次数cnt为0,每次遍历数组中的一个元素的时候,如果能在map中查到该字符,那么该map元素的cn
2014-10-27 13:18:01
1472
原创 链表的倒序输出
链表的倒序输出,我们可能想到的方法就是把链表翻转后然后再遍历一遍,这样的话时间复杂度是O(n),但是缺点是代码稍微复杂。或者是开辟一个数组,顺序遍历一个链表把元素复制到数组里面,最后再把数组倒序输出。其实这道题目时间复杂度都不可能低于O(n),但是考虑用栈的话代码就可能非常简单,代码如下所示:#include using namespace std;struct Node{ int
2014-10-27 00:39:50
2468
原创 找出数组中出现仅一次的数字
有一个元素类型是整数的数组,数组中有一个数字仅仅出现了一次,其它都出现了两次,现在请把这个仅仅出现一个找出来。分析:1.1 首先想到的是排序,这样的时间复杂度是O(n*logn) + O(n),这样的速度的确不咋地;1.2 最好的方法不是自己想出的,在网上找到的,是利用位运算的性质,两个相同的数字异或运算的结果是0,0和任何整数的异或运算是其本身,这两点足以,所以我们只需要遍历一边
2014-10-26 22:59:58
1114
1
原创 mysql忘记密码
有时候突然忘记MySQL的密码会真的不爽,这里介绍一种MySQL密码忘记时重置密码的方法,操作系统win8,MySql version:5.6.101 在任务管理器里面关闭掉mysql.exe,mysqld.exe进程;2 在MySQL安装的文件夹里面打开cmd窗口(shift+右键)输入mysqld –skip-grant-tables,如下所示:它大概意思就是跳过授权表
2014-10-17 13:12:52
1443
原创 scanf,printf函数细节
今天笔试的时候遇到一个考察C语言scanf函数的题目int x;float y;scanf("%3d%f",&x,&y);// input 123456 678 enter and then what's the value of x and yprintf("%d %f",x,y);程序的执行结果是:123 456.0000000看来还是自己对scanf函数不是很了解,现在看
2014-10-17 00:43:49
1383
原创 三色旗问题的解决
三色旗问题1 问题由来 三色旗的问题最早由E.W.Dijkstra所提出,他所使用的用语为DutchNation Flag(Dijkstra为荷兰人),而多数的作者则使用Three-Color Flag来称之。 假设有一条绳子,上面有红、白、蓝三种颜色的旗子,起初绳子上的旗子颜色并没有顺序,您希望将之分类,并排列为蓝、白、红的顺序,要如何移动次数才会最少
2014-09-23 04:00:04
4047
3
原创 中缀表达式转后缀表达式
中缀表达式转后缀表达式1 基本概念 在计算机中表达式有三种,前缀表达式(波兰式),中缀表达式,后缀表达式(逆波兰式)。如表达式:a+b*(c-d)-e/f前缀表达式:-+a*b-cd/ef中缀表达式:a+b*(c-d)-e/f后缀表达式:abcd-*+ef/-1.1 特点与利弊 中缀表达式的括号必不可少,它的优点是符合我们人类的书写和
2014-09-20 02:22:15
1937
原创 约瑟夫问题的解法集锦
约瑟夫问题的N种解法1 问题的历史以及不同的版本1.1 约瑟夫环(Josephus)问题是由古罗马的史学家约瑟夫(Josephus)提出的,他参加并记录了公元66—70年犹太人反抗罗马的起义。约瑟夫作为一个将军,设法守住了裘达伯特城达47天之久,在城市沦陷之后,他和40名死硬的将士在附近的一个洞穴中避难。在那里,这些叛乱者表决说“要投降毋宁死”。于是,约瑟夫建议每个
2014-09-19 14:38:59
2915
原创 猴子分桃问题的解决方法
猴子分桃问题的解决方法1 问题1979年,李政道博士给中国科技大学少年班出过一道智趣题:5只猴子分一堆桃子,怎么也分不成5等分,只好先去睡觉,准备第二天分。夜里1只猴子偷偷爬起来,先吃掉一个桃子,然后将其分为5等份,藏起自己的一份就去睡觉了;第二只猴子又爬起来,吃掉一个桃子后,也将桃子分成5等份,藏起自己的一份睡觉去了;以后的3只猴子都先后照此办理。问最初至少有多少个桃子?现在考虑更加
2014-09-14 01:24:04
7875
Win32对话框编程
2014-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人