2014年4月10日
摘要: 在C++实际开发中,难免会使用到一些你极为常用的算法(比如笔者经常使用的多线程技术),实现这些算法的类或是全局函数或是命名空间等等经常都要被使用多次,你会有哪些办法来使用呢?笔者有4个办法。 第一个方法就是你直接重新编写一个和原来一样的算法,但是这种方法又费时又费力,效率不高,只有初学者在没有办法的时候才会使用这种方法。第二种方法也是如此,就是复制一份代码到新写的文件中,这种方法的缺点是你不确定能否找到之前的代码,而且一点也不像IT人员的解决方案。 我们重点介绍第三种和第四种方法。 第三种方法是在需要的地方声明这个类或是全局函数。注意声明的时候要使用extern关键字来声明(任何东西... 阅读全文
posted @ 2014-04-10 09:52 haosola 阅读(773) 评论(0) 推荐(1) 编辑
摘要: String.split()方法你可能不知道的一面 一、问题 java中String的split()是我们经常使用的方法,用来按照特定字符分割字符串,那么我们看以下一段代码: public void splitTest() { String str = "aaa|bbb|ccc"; String[] array = str.split("|"); System.out.println(Arrays.toString(array)); } 是不是感觉很简单,就是吧str按照"|"分割,结果就是[aaa,bbb,ccc]嘛。如果你这么想, 阅读全文
posted @ 2014-04-10 09:32 haosola 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 在之前我们所写过的程序中,所必需的内存空间的大小都是在程序执行之前就已经确定了。但如果我们需要内存大小为一个变量,其数值只有在程序运行时 (runtime)才能确定,例如有些情况下我们需要根据用户输入来决定必需的内存空间,那么该怎么办呢? 答案是动态内存分配(dynamic memory),为此C++ 集成了操作符new 和delete。 1. new 和new [] 操作符 动态内存分配用操作符 new 。new 后面跟一个数据类型,如果要求的元素多于一个,需要加上 [],元素数量放在 [] 中。它返回一个指向内存块开始位置的指针。语法是: pointer = new type... 阅读全文
posted @ 2014-04-10 09:26 haosola 阅读(733) 评论(0) 推荐(0) 编辑
摘要: 介绍 我最近需要为一个。net项目准备一个内部线程通信机制。 项目有多个使用ASP.NET,Windows 表单和控制台应用程序的服务器和客户端构成。 考虑到实现的可能性,我下定决心要使用原生的socket,而不是许多。NET中已经提前为我们构建好的组件, 像是所谓的管道, NetTcpClient 还有 Azure 服务总线。 这篇文章中的服务器基于System.Net.Sockets类异步方法。 这些允许你支持大量的socket客户端, 而一个客户端的连接是唯一的阻塞机制。 阻塞的时间是可以忽略不记得,所以服务器基本上是在当做一个多线程socket服务器在运作的。 背景 原生的... 阅读全文
posted @ 2014-04-10 09:20 haosola 阅读(302) 评论(0) 推荐(0) 编辑

toeflacttoeflieltstoefltoeflact