
编程技术
文章平均质量分 65
sankt
目前从事金融方面的项目开发
空闲时喜欢听音乐,运动方面喜欢爬山和散步
展开
-
进程和线程的区别
说法一:进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源. 一个线程可以创建和撤销另一个线程;同原创 2005-12-17 21:13:00 · 1331 阅读 · 0 评论 -
两个超大整数相加
#include#includeusing namespace std;const int N = 1024;void Revert(char* str){ assert(str != NULL); int len = strlen(str); char *p = str; char *q = str + len -1; while(p {原创 2006-07-26 15:18:00 · 1559 阅读 · 0 评论 -
微软面试题之一(版本2.0)
/*设计一数据结构,实现对单词(限于a到z的26个字母)的存储,并可实现查询,如输入"ab",则返回所有以ab开头的单词.在偶的程序里,我是打开一个文件,然后从文件中读取单词,核心技术还是使用strtok,用strtok分离出单词后,存在自定义的数据结构里面。最终由用户输入前面的几个字母,进行查询输出*/#include#include#includeusing namespace std原创 2006-07-21 16:05:00 · 1713 阅读 · 6 评论 -
微软面试题之二
// 用非递归算法实现求N个数的最大公约数//工作之余,随手编写的小程序,仅供参考#include#include#include#includeconst int N = 3;using namespace std;int common_divisor(int m,int n){ if(n == 0 || m == n) return m; if(m原创 2006-07-21 16:12:00 · 2084 阅读 · 0 评论 -
单词拼写纠错
/*英文拼写纠错:在用户输入英文单词时,经常发生错误,我们需要对其进行纠错。假设已经有一个包含了正确英文单词的词典,请你设计一个拼写纠错的程序。(1)请描述你解决这个问题的思路;(2)请给出主要的处理流程,算法,以及算法的复杂度;(3)请描述可能的改进(改进的方向如效果,性能等等,这是一个开放问题)*/#include#include#include#include#include#include原创 2006-07-22 21:47:00 · 4065 阅读 · 2 评论 -
微软笔试题3
把字符串S中所有子串A替换成子串B,使用自定义的strstr#includeusing namespace std;char* My_strstr(char *str1, const char *str2 ){ assert(str1 != NULL && str2 != NULL); char *p = str1; const char *q = str2;原创 2006-07-24 16:26:00 · 1589 阅读 · 0 评论 -
微软笔试题4
//这个似乎是微软比较早的笔试题了,这里偶给出一个简单实现.//字符串倒序输出。For Ex:The quick fox jumps over a lazy dog.//The result is: dog lazy a over jumps fox quick The#includeusing namespace std;const int N = 256;void Reve原创 2006-07-25 10:11:00 · 2711 阅读 · 0 评论 -
寻找热门查询
/* 寻找热门查询:搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。假设目前有一千万个记录,这些查询串的重复度比较高,虽然总数是1千万,但如果除去重复后,不超过3百万个。一个查询串的重复度越高,说明查询它的用户越多,也就是越热门。请你统计最热门的10个查询串,要求使用的内存不能超过1G。(1)请描述你解决这个问题的思路;(2)请给出主要的处理流程,原创 2006-07-22 13:17:00 · 2429 阅读 · 1 评论 -
摩托罗拉C++面试题
1.介绍一下STL,详细说明STL如何实现vector。Answer:STL (标准模版库,Standard Template Library.它由容器算法迭代器组成。STL有以下的一些优点:可以方便容易地实现搜索数据或对数据排序等一系列的算法;调试程序时更加安全和方便;即使是人们用STL在UNIX平台下写的代码你也可以很容易地理解(因为STL是跨平台的)。vector实质上就是一个动态数组,原创 2006-08-10 14:36:00 · 2857 阅读 · 0 评论 -
彻底掌握erase函数
今天又遇到erase问题,以前存在着一些疑惑,今天决定将其彻底弄清楚,首先看看函数的声明:#include iterator erase( iterator loc );iterator erase( iterator start, iterator end );The erase() function either deletes the element at location loc, o原创 2006-12-11 21:40:00 · 3592 阅读 · 0 评论 -
COM是什么(转载)
什么是COM组件 用户需要什么样的软件产品?这是一个多选题,但高效,健壮是肯定会被选种的。作为一名软件开发人员如何做才能满足用户的需要呢?必须要保证升级应用时不破坏与以前版本的向后兼容性。必须做到扩展系统服务时不依赖特定的操作系统。面向对象的程序设计显然是一次革命性的改变。采用面向对象的设计方法我们可以很容易的把要解决的问题事物抽象成各种类,并将内部动作封装隐藏起来,只提供一些接口。但这并没有完转载 2006-12-15 09:22:00 · 1988 阅读 · 0 评论 -
求一个整型数组中出现次数最多的一个元素,要求具备较高的效率
/*如何在一个有N个元素的整数数组中找出出现次数最多的一个整数,要求具备较高的效率.Author:Bill Joy.*/#include#include#include#includeusing namespace std;const int N = 128;int main(){ vector vec; vec.reserve(N); srand(time(NU原创 2007-01-02 21:48:00 · 4116 阅读 · 0 评论 -
微软面试题之一
题目大意就是:读取一个文件,要求打印一些单词,这些单词满足一定的条件。条件是:开头的两个字符必须是给定的两个字母,比如说he。如果文件中单词以he开头,那么把这些单词打印出来。 闲来无事,偶给出一个简单的实现。#include#includeusing namespace std;char seps[] = " ,/t/"/n.?";char *token;int main原创 2006-07-21 14:52:00 · 1086 阅读 · 0 评论 -
基数排序
#include #include #include #include #include #include using namespace std; int **bu; int power(int x,int y) { if( y == 0) return 1; int i; int sum = 1; for(i=0;i{ sum *= x; } return sum; } void Bucket原创 2006-07-11 17:15:00 · 989 阅读 · 1 评论 -
一道华为面试题
/*有一个数组A[nSize],其元素含有多个0,求一函数将所有的非零元素移到前面(不分大小,按原位置前移).并返回非零函数的个数i.*/#include#includeusing namespace std;int fun1(int *a,int len){ int i; int k=0; for(i=0;i { if(a[i] != 0)原创 2006-03-30 16:39:00 · 1295 阅读 · 1 评论 -
什么是RSS
RSS 是一种“轻量级、多用途、可扩展的元数据描述及联合推广格式”,也可以理解为一种规范。它本身是一种 XML 格式,用于为内容整合客户端提供选择性的、汇总过的 Web 内容。如今,许多站点都开 始通过创建 RSS feed 向浏览者提供内容整合服务,提供新闻、站点内容的更新等等。浏览者可以通过一些客户端软件方便地得到这些组织、汇总了的信息。 那么,怎么在我们自己的网站上创建 RSS feed 呢转载 2006-04-12 14:36:00 · 1228 阅读 · 0 评论 -
什么是COM
什么是COM 在讨论COM以前,我们得认识到一个事实,编写软件实际上是一个非常 耗费时间和金钱的活动,所以人们不断寻找方法以减少这些花费,一个很重要的就是 “软件重用”。在一个理想的环境下,我们应该能够编写一次代码,在任何地方都可 以运行,即使这个环境编写者都没有想到过。当一个程序员修改了自己发布给别人使 用的函数功能后,使用者应该不需要改变或者重新编译程序就可以使用这个功能。 早期的努力是使用类转载 2006-04-18 14:49:00 · 1770 阅读 · 0 评论 -
字符串替换
#include using namespace std; int main() { char *pdest; int result; int i; int k=0; char str[] = "lazy"; int lenstr = strlen(str); char newstr[] = "beautiful"; char strings[100] = "The quick brown dog原创 2006-04-27 17:08:00 · 930 阅读 · 0 评论 -
__cdecl __fastcall与 __stdcall
__cdecl __fastcall与 __stdcall 调用约定: __cdecl __fastcall与 __stdcall,三者都是调用约定(Calling convention),它决定以下内容:1)函数参数的压栈顺序,2)由调用者还是被调用者把参数弹出栈,3)以及产生函数修饰名的方法。 1、__stdcall调用约定:函数的参数自右向左通过栈传递,被调用的函数在返回前清理传送参数的内存转载 2006-05-03 10:11:00 · 2237 阅读 · 0 评论 -
平时很少注意到的宏,源于今天调试程的程序
今天偶在写一个小程序的时候,无意中冒犯了C++的关键字,郁闷了很久,才发现。当时我写了一个类,然后定义一个对象:class Test{ //};Test or; //这里触犯了C++的keyword.汗一个!故写下此文留做教训,顺便找到另外一些平时很少注意到的宏.and#define and && [keyword in C++] or#define or || [keywo原创 2006-09-15 11:20:00 · 976 阅读 · 0 评论 -
文件读写操作
文件读写操作似乎是经常发生的事情,我曾经写过很多.以后我会陆续补充一些. 基本上都是以完整的程序展出.更多细节不再给出,阁下有兴趣的话,可以留言一起学习.//=========以下demo应用程序,使用了write & read 成员函数.#include #include using namespace std; int main() { enum {BUFSIZE = 1000}; c原创 2006-05-14 14:49:00 · 1053 阅读 · 0 评论 -
Google 搜索论文
这篇文章中,我们介绍了google,它是一个大型的搜索引擎(of a large-scale search engine)的原型,搜索引擎在超文本中应用广泛。Google的设计能够高效地抓网页并建立索引,它的查询结果比其它现有系统都高明。这个原型的全文和超连接的数据库至少包含24000000个网页。我们可以从http://google.stanford.edu/ 下载。 设计搜索引擎是一项富有转载 2006-05-16 07:52:00 · 1190 阅读 · 0 评论 -
堆和栈的区别
堆和栈的区别 一、预备知识程序的内存分配 一个由c/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack) 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据 结构中的栈。 2、堆区(heap) 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据 结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(stat转载 2006-05-12 13:28:00 · 1362 阅读 · 0 评论 -
汇编语言常用指令
一、数据传输指令 它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据. 1. 通用数据传送指令. MOV 传送字或字节. MOVSX 先符号扩展,再传送. MOVZX 先零扩展,再传送. PUSH 把字压入堆栈. POP 把字弹出堆栈. PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈. POPA转载 2006-05-30 21:34:00 · 2153 阅读 · 0 评论 -
如何在windows程序中读取bios内容
大家都知道,windows接管了对物理内存的直接存取,而bios信息存在物理内存 的f000:0000处,关键就是如何读取物理内存。 查阅了msdn的文章后,发现以下有几个函数和物理内存访问有关: NTSTATUS ZwOpenSection(OUT PHANDLE SectionHandle, IN ACCESS_MASK DesiredAccess,IN POBJECT_ATTRIBUTES转载 2006-07-03 15:07:00 · 1334 阅读 · 0 评论 -
一道比较简单的Google面试题
/*对现在的栈stack进行改进,加一个min功能,使之能够在常数时间,即O(1)找到栈中最小值.可以对Push(const Type&val) 和 Pop()函数进行修改,但要求其时间复杂度都是O(1).*/#include#include#include#includeusing namespace std;templateclass MyStack{private: stack原创 2007-04-09 17:32:00 · 1654 阅读 · 2 评论