C++/C/ACM
文章平均质量分 76
sun_top
网络工程师
展开
-
确定有限自动机(DFA)——一个简单的C++词法分析器
<br /> 确定有限自动机(DFA)——一个简单的C++词法分析器<br /> <br /> 开始想运用确定有限自动机去实现一个简单的C++词法分析器时,我感到很困难,不知从何处下手,因为C++词法太多太复杂,并且为了体现c++的特性又不得不去对它的语法作一点引入。幸运的是,在搜索相关资料时,一位网友的关于用c++构造词法自动机文章帮我解决了心中的难题,在此万分感谢!。(作者原文原创 2010-07-03 19:16:00 · 19246 阅读 · 0 评论 -
深入详解标准C语言 IO
标准 C I/O函数列表:clearerr() 清除错误 fclose() 关闭一个文件 feof() 如果到达文件尾(end-of-file)返回"True"(真) ferror() 检查一个文件错误 fflush() 书写输出缓存的内容 fgetc() 从流获取一个字符 fgetpos() 获取文件位置指针 fget原创 2009-06-02 14:51:00 · 6490 阅读 · 2 评论 -
“铁道社杯”湖南省第三届大学生程序设计大赛试题 -------苏东坡的拷问
试题 3 苏东坡在迁谪黄州期间对竹子情有独钟,他在屋前挂了很多用来当作雨檐的竹子。某日,天空下起了雨,苏轼静坐在窗前看着窗外,手抚瑶琴,忆古思今。他突然感悟到,人生之于宇宙,与其说像沧海一栗,不如说更像这眼前的每一个雨滴,虽然飘忽不定,但都有属于自己的归宿。于是他突发奇想,他想要知道每个落在雨檐上的水滴会落在什么位置,来印证自己对于人生的拷问。 假设被当作雨檐的竹子的位置都是已知的。如下图所原创 2009-05-25 08:29:00 · 1175 阅读 · 0 评论 -
标准模板库(STL)学习探究之Stack容器
C++ Stacks(堆栈) Stack是一个容器类的改编——也就是说实现了一个先进后出(FILO)的数据结构。stack不直接维护被控序列的模版类,而是它存储的容器对象来为它实现堆栈的所有功能。值得注意的是迭代器不能在堆栈中使用,因为只有栈顶的元素才可以访问。typedef stack>>mystack默认的参数中容器是用原创 2009-05-25 08:28:00 · 7050 阅读 · 0 评论 -
标准模板库(STL)学习探究之Priority Queue容器
C++ Priority Queue(优先队列)C++优先队列类似队列,但是在这个数据结构中的元素按照一定的断言排列有序。它的头文件为。由于适配器不支持迭代,一个 priority_queue 将有没有关联的迭代器。函数列表:empty() 如果优先队列为空,则返回真 pop() 删除第一个元素 push() 加入一个元素 size() 返回优先队列中拥有原创 2009-05-25 08:24:00 · 10076 阅读 · 2 评论 -
标准模板库(STL)学习探究之Multimap容器
C++ Multimaps(多映射)C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素。(具体用法请参考map容器)函数列表:begin() 返回指向第一个元素的迭代器 clear() 删除所有元素 count() 返回一个元素出现的次数 empty() 如果multimap为空则返回真 end() 返回一个指向mu原创 2009-05-25 08:21:00 · 4500 阅读 · 0 评论 -
标准模板库(STL)学习探究之Double Ended Queue容器
C++ Double Ended Queue(双向队列)双向队列和向量很相似(具体用法可参看vector容器),但是它允许在容器头部快速插入和删除。函数列表:Constructors 创建一个新双向队列 Operators 比较和赋值双向队列 assign() 设置双向队列的值 at() 返回指定的元素 back() 返回最后一个元素 b原创 2009-05-25 08:17:00 · 1278 阅读 · 0 评论 -
标准模板库(STL)学习探究之vector容器
C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用vector,必须在你的头文件中包含下原创 2009-05-25 08:14:00 · 3357 阅读 · 0 评论 -
标准模板库(STL)学习探究之Set容器
C++ Sets(集合) set和map一样属于关联容器,set是集合,map是映射。若元素类型为int,double,string就会自动进行(默认是升序)排序(使用平衡二叉树来实现),使用自定义类型而未定义比较运算符就不能自动排序了。set容器不支持随机访问。函数列表:begin()返回指向第一个元素的迭代器clear()清除原创 2009-05-25 08:26:00 · 4246 阅读 · 1 评论 -
标准模板库(STL)学习探究之MultiSet容器
C++ MultiSets(多元集合)多元集合(MultiSets)和集合(Sets)相像,只不过支持重复对象。(具体用法请参照set容器)函数列表:begin()返回指向第一个元素的迭代器clear()清除所有元素count()返回指向某个值元素的个数empty()如果集合为空,返回trueend()返回指向最后一个元素的迭代器eq原创 2009-05-25 08:22:00 · 1699 阅读 · 0 评论 -
深入详解C++ I/O
C++ I/O深入详解库自动定义了一些标准对象:cout, ostream类的一个对象,可以将数据显示在标准输出设备上. cerr, ostream类的另一个对象,它无缓冲地向标准错误输出设备输出数据. clog, 类似cerr,但是它使用缓冲输出. cin, istream类的一个对象,它用于从标准输入设备读取数据. 库原创 2009-06-02 14:54:00 · 5743 阅读 · 0 评论 -
Microsoft程序员测试题(一些高难度智力题)
最近大家在网站上看到不少Microsoft的测试题,引来不少的眼光。我在这里把所有的测试题加以整理,再附上自己的答案。(个别题目答案有多种,文本仅代表作者的思路,如有高见欢迎和我交流onefi@frontfree.net)每道题的后面会给出一个时间。这个时间是我做出该题所用的时间。(注意,这不是什么标准时间,我相信所有浏览本试卷的朋友都会在某一道或多道题上找到灵感,迅速解题的)一.最基本题型转载 2009-06-02 15:01:00 · 3873 阅读 · 2 评论 -
深入详解c语言数学函数
深入详解c语言数学函数函数列表:abs()求绝对值fabs()求浮点数的绝对值labs()求长整型数的绝对值_cabs()计算复数的绝对值acos()求反余弦asin()求反正弦atan()求反正切atan2()求反正切,按符号判定象限ceil()求不小于某值的最小整数 (求上界)cos()求余弦cosh()求双曲余原创 2009-06-02 14:47:00 · 8593 阅读 · 2 评论 -
C++编程艺术
C++编程艺术 漫游世界——C++概述 19世纪80年代初期美国AT&贝尔实验室Bjarne Stroustrup发明并实现了C++,它的面向对象程序设计思想无不使全世界的程序员为之惊呼。由C语言演化而来的C++是一种静态数据类型检查原创 2010-04-09 18:34:00 · 1642 阅读 · 2 评论 -
深入详解STL算法
深入详解STL算法 下面将介绍标准模板库定义的算法。这些算法通过迭代器在容器中进行操作。所有的算法都是模板函数。算法详细说明: adjacent_find template inline _FwdIt adjacent_find(_FwdIt _First, _FwdIt _Last); temp原创 2009-12-20 16:23:00 · 2026 阅读 · 0 评论 -
一道加法题
一道加法题 题目描述:给你两个正整数d和n,计算[d/1]+[d/2]+...+[d/n]的结果,其中d,n如9/5就是2,20/7就是3输入:多组测试数据,每组仅一行为d和n当d=n=0时结束程序输出:计算并输出结果样例输入:1 11 2515 270 0样例输出:1263程序实现代码如下:#include#includeusing namespace std;i原创 2009-12-20 17:23:00 · 901 阅读 · 2 评论 -
浏览器
浏览器DescriptionFirefox浏览器具有网址记忆功能,能够记住用户在地址栏中输入并访问过的网址;用户下次只需输入网址的一部分字符,浏览器就会在地址栏下方弹出建议框,提供访问历史记录中包含了用户输入字符的网址列表,使用户能方便、快捷地访问网页。你所在原创 2009-10-28 18:39:00 · 714 阅读 · 0 评论 -
点集矩阵
试题 2 考虑图 1a, 2a, 3a中的点集。将这些点作为矩形的顶点,可以构成如图 1b, 2b, 3b 中所示的诸多矩形。这些矩形的边都须为水平边或垂直边。而图4 所示的点集不能构成任何矩形。你的任务是在给定的点集中找出所有可能构成的矩形。 输入 :输入文件包含一个或多个点集。此文件以数字 0 结束。每个点集由一个整数N 开始,表示点集中点的数目,后续的N行描述了所有的N个点。每个点按如原创 2009-06-21 11:25:00 · 1397 阅读 · 0 评论 -
二叉树
练习题根据输入构建一个二叉树。输入第一行为树的根结点,从第二行开始,每行有三个字符,第一个字符是第三个字符的父结点。中间字符为L时表示第三个字符是第一个字符的左子树,R表示右子树。输入以0结束。输出该二叉树的先、中、后和层次遍历,最后输出树的深度。#include#include#include#includeusing namespace std;ifstream stream("input原创 2009-06-21 11:00:00 · 766 阅读 · 1 评论 -
深入详解标准c内存函数
标准c内存函数函数列表:calloc() 分配一个二维储存空间free() 释放已分配空间malloc() 分配空间realloc() 改变已分配空间的大小 /////////////////////////////////////////////////////////////////////////////////////#原创 2009-06-02 14:53:00 · 1680 阅读 · 0 评论 -
深入详解标准c时间与日期函数
深入详解 标准c时间与日期函数时间与日期结构体(time.h)struct tm { int tm_sec; /* seconds after the minute - [0,59] */ int tm_min; /* minutes after the hour原创 2009-06-02 14:50:00 · 3937 阅读 · 2 评论 -
经典智力题及其解答
1。海盗分金问题传说,从前有五个海盗抢得了100枚金币.他们通过了一个如何确定选用谁的分配方案的安排.即: 1.抽签决定各人的号码(1,2,3,4,5);2.先由1号提出分配方案,然后5个人表决.当且仅当超过半数人同意时,方案才算被通过,否则他将被扔入大海喂鲨鱼;3.当1号死后,再由2号提方案,4个人表决,当且仅当超过半数同意时,方案才算通过,否则2号同样将被扔入大海喂鲨鱼;4.往下依次类推……转载 2009-06-02 14:59:00 · 1579 阅读 · 0 评论 -
标准模板库(STL)学习探究之Iterator
C++ Iterator(迭代器) 迭代器可被用来访问一个容器类的所包函的全部元素,其行为像一个指针。举一个例子,你可用一个迭代器来实现对vector容器中所含元素的遍历。有这么几种迭代器如下:input_iterator 提供读功能的向前移动迭代器,它们可被进行增加(++),比较与解引用(*)。 output_原创 2009-05-25 08:19:00 · 968 阅读 · 0 评论 -
标准模板库(STL)学习探究之List容器
C++ Lists(链表) Lists将元素按顺序储存在链表中. 与 向量(vectors)相比, 它允许快速的插入和删除,但是随机访问却比较慢. 函数列表如下:assign() 给list赋值 back() 返回最后一个元素 begin() 返回原创 2009-05-24 21:40:00 · 1663 阅读 · 0 评论 -
微软面试简单算法题目
转载 2009-05-25 08:56:00 · 1118 阅读 · 1 评论 -
vector应用问题
将输入中重复的整数删除后输出,输入以0为结束。 输入 2 3 3 4 5 4 0 输出 2 3 4 5 #include#include#includeusing namespace std;void main(){ ifstream stream("input.txt"); vecto原创 2009-04-06 21:42:00 · 630 阅读 · 0 评论 -
c/c++头文件使用探索
在VC++4.1以前的版本中,使用的库称为运行库(run-time library),头文件名都是“*.h”。从VC++4.2版本开始使用标准C++库(standard C++ library),标准C++库是符合ANSI标准的,它使你的程序可以在不同的编译系统和平台间移植。新的头文件名不再有“.h”扩展名,不过标准C++库仍然保留了18个带有“.h”扩展名的C头文件。 在程序中,既可以原创 2009-04-18 10:59:00 · 1022 阅读 · 0 评论 -
自动柜员机
本程序通过编程模拟自动柜员机(ATM)的工作。程序功能简单:1.查询余额;2.取款;3.退出系统。 程序中我使用了钩子,用以屏蔽某些消息。很可惜,经反复测试及上网查阅,发现无法在控制台程序中设置钩子,即钩过程没被执行。保留此钩子的相关代码,是为了与大家一同交流如何在控制台程序中实现与钩子一样的功能。 我把这个程序拿出来与大家共同交流,是因为我觉得编程能力的提高需要多多交流,要知道写出原创 2009-04-13 12:35:00 · 2285 阅读 · 1 评论 -
Vector容器简介
Vector容器 STL在C++中称为标准模板库。STL定义了一系列用途广泛的模板类和模板函数,它们可以用来实现许多通用的算法和数据结构。 标准模板库STL的核心内容是3个基本组件:容器、算法和迭代器。STL将这些组件结合在一起为许多程序设计难题提供实际可行的解决办法。例: list容器是一个线性表容器,它有一个成员原创 2009-04-16 11:59:00 · 1509 阅读 · 0 评论 -
深度优先搜索遍历
问题:把一个文件中的数据,读取到一个二维数组中,这个文件中的数据如下: 1 2 1 3 1 4 4 5说明这是一个无向图,顶点1连接顶点2,顶点1连接顶点3…将这些数据以无向图邻接矩阵的形式读取并存储,并用深度优先搜索遍历所有顶点并输出。(从给出的数据的第一行的第一各顶点开始进行遍历) 源程序: #include#include#includeusing namespace原创 2009-04-04 11:22:00 · 845 阅读 · 0 评论 -
多数组动态相加
问题 A+B+C…..已知有n组整数,求每组整数的和。输入: 第一行为整数组数n,从第二行开始每组整数的第一个数为该组整数的个数下面为具体的整数。输出: 每组整数的和输入样例(文件输入) 2 2 1 2 3 1 2 3输出样例 3 6代码如下:方法一:#include#include usi原创 2009-04-03 20:26:00 · 617 阅读 · 0 评论 -
algorithm——C++算法
algorithm 算法是作用于容器的。虽然每个容器类都定义了自己的一些基本操作,但标准算法则为容器提供了更多更复杂的操作。算法还允许你同时对两个不同类型的容器进行操作。 如果要使用STL算法,必须将头文件包含到程序中。STL定义了 大量的算法,所有的算法都是模板函数,这也意味着任何类型的容器都可以使用这些算法。例原创 2009-04-17 08:41:00 · 2614 阅读 · 0 评论 -
List容器应用
List容器双向线性表list容器 list类定义了双向的线性表。Vector类支持随机访问,但list只能支持顺序访问,由于list是双向的,因此我们可以按从前到后或者从后到前的顺序来访问list。1.创建一个list对象#includeusing namespace std; list lst1;list lst2;2.向list对象原创 2009-04-14 11:04:00 · 2212 阅读 · 0 评论 -
士兵排序--------冒泡排序的一个应用
冒泡排序是最慢的排序算法。在实际运用中它是效率最低的算法。它通过一趟又一趟地比较数组中的每一个元素,使较大的数据下沉,较小的数据上升。它是O(n^2)的算法。 Soldiers (Input File: input.txt) There are N soldiers standing in a qu原创 2009-04-12 12:35:00 · 2005 阅读 · 0 评论 -
printf基本用法
#includevoid main(){ char *m1="Binary"; char *m2="Decimal"; char *m3="Octal"; char *m4="Hexadecimal"; float dl=10000.123; int n=1,f=1; puts("Outputting a number with different field widths./n" ); pri原创 2009-04-19 09:39:00 · 1344 阅读 · 0 评论 -
金币问题
问题 假金币 Gold Bar银行收到可靠消息:在M组金币中每组都有一个重量不同的假金币(其他金币的重量相同)。经济危机之后他们只有一台天平可用。用这台天平,可以称量出左边托盘中的物体是轻于、重于或等于右边托盘中的物体。 为了分别出假金币,银行职员将所有的金币编为1-N号。然后用天平称量不同的金币组合,每次仔细记载称量金币的编号和结果。 现在要求编写一个程序,帮助银行职员根据称量记录原创 2009-04-05 15:01:00 · 1396 阅读 · 0 评论 -
数学递推思想在程序中的应用(一)----------兔子问题
Rabbit The Rabbits have powerful reproduction ability. One pair of adult rabbits can give birth to one pair of kid rabbits every month. And after m mon原创 2009-05-17 12:29:00 · 1473 阅读 · 0 评论 -
标准模板库(STL)学习探究-------前言
当我初学STL时,我获得了一本难得的电子参考书《C&&C++函数参考》。因为它是中文版的并且讲解详细,所以我较轻松地学完了几种基本容器。然而在学习的过程中,我发现如果只满足于书上所讲的内容,所学的东西会很不全面、精确。因为《C&&C++函数参考》并非万能,它在一些地方讲解就不怎么清楚明了,有时又没有必要的举例。因此,为求完美,我上网学习了大量的相关资料。我几乎对每个容器中的每个函数都用代码尝试使原创 2009-05-24 21:09:00 · 538 阅读 · 0 评论 -
微软面试题附答案
一.最基本题型(说明:此类题型比较简单) 1.烧一根不均匀的绳,从头烧到尾总共需要1个小时。现在有若干条材质相同的绳子,问如何用烧绳的方法来计时一个小时十五分钟呢? 2.你有一桶果冻,其中有黄色、绿色、红色三种,闭上眼睛抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果冻? 3.如果你有无穷多的水,一个3公升的提捅,一个5公升的提捅,两只提捅形状上下都不均转载 2009-05-25 08:56:00 · 4522 阅读 · 0 评论 -
标准模板库(STL)学习探究之Queue容器
C++ Queue(队列) queue是容器配接器C的一个示例,容器配接器C将一些基础容器转换成类C的容器。容器配接器queue、stack、priority_queue——与标准模板库的其他处理是截然不同的。他们的方法和定义要调用基础容器类的方法。 queue的基础类可以为list,list类中有size,empty,原创 2009-05-25 08:25:00 · 1391 阅读 · 0 评论