- 博客(18)
- 资源 (10)
- 收藏
- 关注
原创 [C#] delegate/event 的详细使用方法介绍与例程
一,delegate/event用法的相关介绍 按照msdn的说法,event就是让你可以指定一个当event发生时发生的委托。当您的代码指示事件发生时,委托可以由有一个或多个相关的方法将被调用。二,创建delegate/event的步骤 1,声明一个委托 delegate。 2,创建一个类,这个类包含: a,用声明的委托定义
2017-09-13 15:50:20
933
原创 C# 线程的挂起与唤醒 (AutoResetEvent,ManualResetEvent)
如果说C#和C++有什么不同,博主不得不说,对于异步的支持程度是C#的一一个伟大的进步。 其实早期的C++都没有异步,并发的概念。博主第一次使用C++创建异步程序的时候,是使用boost库的内容进行实现的。相对而言,C#对于异步的支持可以说是相当的好。相信很多名词大家都很耳熟能详,比如说Thread,BeginInvoke,Delegate,backgroundworker等等。。。其实
2017-07-02 19:51:29
13215
原创 C# 简单操作XML文档(增删查改)
使用C#操作XML文档,主要就是利用XmlNode及它的子类,XmlDoc等等,对文档的各个部分进行操作。 本文主要讲述了如何使用C#对XMl文档进行增删查改和遍历。 一,增加元素 其实,在XML文档中增加元素有着十分简单的步骤,只要按照步骤操作就可以轻松的对XML中的节点进行增加。第一步,创建元素。第二步,设置元素属性。第三步设置元素父节点。具体
2017-06-29 13:23:51
828
原创 C#中Button的DoubleClick等的实现(不用重写类)
在C#中,有些情况下客户会有比较奇怪的要求,比如说:button类的DoubleClick事件触发。为什么我会说它奇怪呢?因为button类虽然有doubleclick事件,但是在design的时候是不能预览的。比如button类的源码中就有:所以问题就来了,如果真的要实现button的双击事件,该怎么去做呢?在click中重写doubleclick?那样未免太low了,这里有
2017-10-12 19:04:34
4895
原创 STL----vector 用法
今天博主抽空写写关于stl vector的内容吧。首先呢,最先写vector的原因是在于vector的重要性非常高,和stl map的地位我个人觉得差不多。他可以结合shared_ptr>在堆区创建动态数组,其实还是挺有意思的。其次呢,系统在读取内存的时候会将hitmem周围的内存都会读进内存,所以说使用数组的话,可以加快系统读取内存的速度(相比于list)。好了,重要性我就说这么多了,
2017-07-03 13:43:36
367
原创 STL-----string 用法
其实string算不算是属于stl中的一个内容,博主自己也不太清楚,但是它确实是具有标准接口的,所以这里博主就暂且当它是了。string它是后来标准库封装好的用来管理字符串的类模板,和char有一些不同。但是这里有句话我想要对大家说,如果大家对自己阅读源码的信心不是很足的话,我建议大家不要死扣他们之间的不同。例如:有很多人会说char数组不能存储结束符,string可以。那我只能说,这里面还是
2017-07-03 13:43:34
596
原创 数据库的相关操作
说起数据库可能有些同学虽然听过,但是真正操作的可能比较少吧。一般情况下,如果大家和我一样从学生过来的,写的是C++代码,一般都会用txt存储一些东西。但是,在这里我不得不说一句,其实用txt存储关键数据不是一个很好的习惯。首先txt是个人双击就能打开,压根没有可靠性。其次,在多线程操作的时候,用txt操作读写的时候可能会引发一些问题。比如说,突然你的txt就变成空白了。。。。。博主就遇到过。。。好
2017-07-03 13:43:31
357
原创 多线程-----共享互斥量
就像之前我们提过的一样,很多线程需要互斥量进行相互锁定,因为很多关键数据和操作并不是线程安全,多线程处理很有可能会出很大的问题。但是互斥量又会带来一个问题,我就举个例子来说明:比如说,现在有一组数据,可以对它进行读写操作。但是一般情况读写要分开操作,因为这样才可以让后续处理更好的执行。很明显的道理,这里读写不能同时进行,要设立互斥量。多线程同时写入也是不允许的,所以要设立互斥量。但是多线程读却
2017-07-03 13:43:28
376
原创 多线程------消费者模式
话说之前说的条件变量是为了做同一件事情的时候,能够让某些关键的数据和节点只能单线程处理,以此来减少关键数据的处理错误。但是一般的多线程处理的事情往往是具有连续性的。比如:有一个疯狂的水库管理员,一边防水一边加水。但是他比数学书上的疯狂管理员还恶心,他有很多进水口和出水口,并且他还是哪吒的小儿子,所以可以同时打开多个水阀。然后他说,他既要省电也要省水。所以,水池里面的水不能够满,水池水干了时候,
2017-07-03 13:43:26
344
原创 多线程-----ATM存取钱
首先博主和大家聊一聊多线程吧。多线程这个东西是后于C++出现的,所以很多学习C++的童鞋在很久之后才能明白什么叫多线程。其实多线程这个东西吧,其实真的很恶心。在我看来,如果不用多线程的话最好不要用,因为这个调试,什么线程互锁之类的,你真的是有点hold不住的。但是,在一些情况下,你又不得不使用多线程。比如说什么情况呢?通常情况下,异步处理是需要进行多线程的。比如说聊天程序。一般情况下,聊天的同时是
2017-07-03 13:43:23
1091
原创 字符串处理---全排列
非常抱歉昨天博主没有及时更新微博。主要原因是昨天晚上下了暴风雪,所以博主急着赶回家睡觉,就没有更新微博。这不是今天趁着开zemi之前及时更新了嘛。首先大家看了看题目就知道全排列了。全排列其实是一个挺恶心的东西。因为这个东西首先大家想到的是迭代了,但是这里的迭代有点蛋疼,因为如果我给你n个字符你就要写n个for循环。所以这里我需要和大家说的是,如果大家以后遇到这种需要写很多迭代的程序,大家一定要考虑
2017-07-03 13:43:20
330
原创 递归-----二分法查找
递归是一个看起来简单的概念:所有调用自己的例程都是递归。尽管看起来很简单,但是理解起来并且应用递归可能相当复杂。本次博主写的内容是关于二分法查找的内容。我记得我之前写过一个二叉树的遍历就是利用递归的。气势二分法和二叉树很相似,所以如果需要查找,大家也是可是可以选择递归去做。问题描述;实现一个函数,在一个已经排序的整形数组中进行二分搜索,找到给定的数据的小标。讨论效率,并与其它的搜索进行比较。
2017-07-03 13:43:18
570
原创 字符串处理-----字符串反转
请原谅博主今天很闲,于是乎博主又开始更新微博了。这次要更新的问题是:编写一个函数,反转一个单词的顺序。例如:"Do or do not, there is no try."就要反转成"try.no is there not, do or Do".大家要认真看看这道题,这道题和大家想象的貌似有点不同。首先字符串反转,大家只要从逆序读出数据然后再填充进来就可以了。但是,但是,这道题大家看看,
2017-07-03 13:43:15
670
原创 字符串处理-----从一个字符串中删…
好吧,博主又来了。今天给大家带来的同样的是恶心的字符串处理。今天给大家带来的问题是:从一个字符串中删除指定的字符。和上一篇博客相比,除了处理问题不同之外,恶心程度还是一样的。一旦处理不好的话,必然会被老板喷的连妈妈都不认识的说。问题举例:现有字符串"xiaozuonanjing",指定字符"zuo",那么完成删除之后得到的字符串应该是"xiananjing"。好吧,其实这个问题想起来也是很
2017-07-03 13:43:12
744
原创 字符串处理---找到第一个不重复的…
实际上字符串的处理一直是各种测试的难点。为什么叫难点呢?因为很多字符串处理,会因为处理方法的不同而导致内存和时间的花费差异巨大。所以说这也是别人经常说的一个考点。今天博主也随意写了一个字符串的处理问题。问题描述:编写一个高效的函数,找到字符串中首个非重复的字符。例如:“tatol”首个非重复的字符时a,“teeter”中首个非重复的字符时r。首先我来说一下一般情况下都能想到的处理方法:
2017-07-03 13:43:09
831
原创 二叉树的遍历
一般情况下,如果有人说到树,那么一般就是二叉搜索树了。这种树的特征就是左边的子节点keyvalue小于本root的值,右边的子节点的keyvalue大于root的值。一般情况下的二叉树的遍历的时间操作是log(n),这是相当短的时间了。当然相比较于搜索速度,二叉树在很多情况下是不如红黑树和完全平衡树的。但是红黑树和完全平衡树的各种插入,删除,再平衡还是挺复杂的。所以这里我就先写一些关于普通
2017-07-03 13:43:07
262
原创 快速排序
快速排序是很多公司面试都会考到的一个问题。首先,在大家初学的时候最早接触的必然是冒泡排序。但是冒泡排序有一个问题,就是时间复杂度很高,O(n^2)。在这里我就不给大家展示冒泡排序了,必然只有两个for循环就可以解决的问题。随着大家学习的深入,我相信大家不可避免的要接触快速排序,因为快排在时间复杂度上面有着非常高的优点,nlog(n)。但是快排的思考毕竟优点麻烦,所以这里给大家演示一下。在演示之
2017-07-03 13:43:04
244
原创 使用链表定义堆栈,实现pop,push
首先我要说明的是stack在标准库中是有其头文件的大家不需要自己去实现一个stack。其次实现stack可以使用动态数组或者链表两种方式,如果大家去实现stack,我推荐大家使用动态数组。首先让我们比较一下链表和动态数组的优缺点吧。链表:优点:1,访问最后一个节点的时间是一样的,0(n)2,插入任何一个结点的时间是一样的缺点:1,处理小规模的数据开销很大,因为需要不断的申请地址2
2017-07-03 13:43:01
3688
Everything搜索工具安装包
2018-06-29
cmake实践.pdf
2019-02-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅