
C&C++
冰清
天助自助者!
展开
-
feof()和EOF的用法—— C中文件结尾的判断
<br />昨天突然被一位朋友问到了关于文件结尾的程序问题。在用feof()判断文件时,复制会多产生一个字符。<br /><br /><br />这个问题在大一的时候,老师上课就强调过,但那时只是模糊的记得个大概,记得这个函数如果用的不对就是会出现问题,解决是要先读一下,然后再判断,具体的什么还真实忘了。而且平常经常用的EOF,所以这个问题自己并没有一个特别好的概念。<br /><br /><br />现在写的C语言多了,应该能理解这个问题存在的原因。所以就在网上找了好多关于这个问题的解释,一看还真不少,但原创 2010-08-03 14:16:00 · 62086 阅读 · 9 评论 -
用堆维护数组的中位数
<br /> <br /> <br />令数组L的中位数为m,用一个最大堆存储数组L中不大于m的元素,用一个最小堆存储数组L中不小于m的元素,其中这两个堆均不包含中位数m。每次往数组L插入新元素x时,若x<m,则将其插入最大堆,否则插入最小堆。若插入新元素后导致m不再是中位数(即两个堆的元素数目相差2个或2个以上),则将当前的中位数m插入到元素数量较少的那个堆中,然后令元素数量较多的那个堆的堆顶元素为新的中位数,并将该堆顶元素从堆中删除。原创 2010-10-08 18:11:00 · 1081 阅读 · 0 评论 -
自己遇到的一些面试题总结 (1)
<br />在网上看了些大公司的面试题,自己也在下面自己做做,现在把几道感觉不错的题贴出来,希望大家能共同学习。<br />每个题都是自己或网上的一些看法,如果谁有更好的想法,请留言提出来,谢谢各位了。<br /> <br />###############################<br />Q:删除字符串中多余的空格<br />给定字符串,删除开始和结尾处的空格,并将中间的多个连续的空格合并成一个。<br /> <br />A:<br />#include <iostream>using na原创 2010-10-07 19:31:00 · 1062 阅读 · 0 评论 -
大数据量,海量数据 处理方法总结 (转)
大数据量的问题是很多面试笔试中经常出现的问题,比如baidu google 腾讯 这样的一些涉及到海量数据的公司经常会问到。 下面的方法是我对海量数据的处理方法进行了一个一般性的总结,当然这些方法可能并不能完全覆盖所有的问题,但是这样的一些方法也基本可以处理绝大多数遇到的问题。下面的一些问题基本直接来源于公司的面试笔试题目,方法不一定最优,如果你有更好的处理方法,欢迎与我讨论。 1.Bloom filter 适用范围:可以用来实现数据字典,进行数据的判重,或者集合求交集 基本原理及要点: 对于原理来说很简单转载 2010-09-28 19:44:00 · 680 阅读 · 0 评论 -
(转)STL总结
<br /><br />本文转自:http://net.pku.edu.cn/~yhf/UsingSTL.htmSTL概述<br />STL的一个重要特点是数据结构和算法的分离。尽管这是个简单的概念,但这种分离确实使得STL变得非常通用。例如,由于STL的sort()函数是完全通用的,你可以用它来操作几乎任何数据集合,包括链表,容器和数组。要点<br />STL算法作为模板函数提供。为了和其他组件相区别,在本书中STL算法以后接一对圆括弧的方式表示,例如sort()。<br />STL另一个重要特性是它不是转载 2010-08-30 15:32:00 · 542 阅读 · 0 评论 -
C/C++中传递动态内存的一些问题
<br />文章中的例子都来自 《程序员面试宝典》(二)。<br /><br /><br />看书的时候,发现了几个动态内存的问题,很经典,自己在编写程序时也经常要碰到。很多问题,自己也是第一次明白,想了很长时间。<br /><br /><br />***************题 1 *******************<br /><br /><br />//找出这个程序的问题#include <iostream>using namespace std;void GetMemory(cha原创 2010-08-23 21:49:00 · 715 阅读 · 0 评论 -
Linux 套接字编程-基础总结
<br />这两天一直在看《linux C编程实战》网路编程一章,主要研究的是套接字编程这部分。里面的大部分程序自己都上机验证了。最后的一个综合应用,服务器/客户端 程序自己也是亲自敲进电脑的。也许敲的过程就是一种学习,可以发现里面一些细节上的问题,这是光看发现不了的。根据这本书的讲解,再依据对最后这个应用程序的理解,自己把套接字编程的需要注意的地方总结下。<br /><br /><br />套接字地址结构<br />结构struct sockaddr 定义了一种通用的套接字地址,它的类原创 2010-08-19 18:51:00 · 1691 阅读 · 4 评论 -
(转)linux下C编程错误捕获函数
<br />本文转载自——武特学长的博客——博客地址:http://www.edsionte.com(里面还有很多的好文章,希望大家能多学习)<br /><br /><br />看了好一段Linux下的C编程,很多东西都有了一定的了解。但是就是有一点比较含糊,那就是Linux下c的错误处理。里面有很多系统函数,也有一些是自己编写的错误处理函数my_err()。就光这点,把我弄迷糊了。今天小组开会时,他们给我说,武特学长博客上面有这方面的讲解。下来看了下,确实收获很多。现在赶紧将这篇文章转载到我的博客上,转载 2010-08-17 11:25:00 · 1604 阅读 · 1 评论 -
(转)sizeof和strlen的区别
<br />该文章转自百度文库:http://wenku.baidu.com/view/f545ecd528ea81c758f578c4.html<br /><br /><br />这两天在看面试题时,发现了很多题目都是拿这两个来“搞晕”我们。我也被他们所弄迷糊,一些简单的题能做出来,但是还有很多都是含糊不清,并不知道所以然。我就上网需求这一方面的讲解,发现了这篇文章讲的非常详细。从概念到区别有详细的介绍,还配有例子来巩固,看完后,会有个全面的认识。所以现在把这个文章贴出来,希望对我们大家都有所帮助。有什么转载 2010-08-15 10:16:00 · 879 阅读 · 1 评论 -
C指针的一些问题
<br />这段时间一直在看C语言方面的内容,为的是巩固一下基础知识,把握一些细节上的东西。<br />指针一直是C语言中的难点,也是重点。每年的面试题,在这上面来下功夫为难我们的也不算少数。所以自己把这部分又复习了一遍,现在把一些重点的东西写下来。<br /><br /><br />指针的概念<br /><br /><br />指针是一个特殊的变量,它里面存储的数值被解释成内存里的一个地址,要搞清楚一个指针需要搞清指针的四方面的内容:(1)、指针的类型。(2)、指针所指向的类型。(3)、指针的值或者叫原创 2010-08-14 15:52:00 · 556 阅读 · 0 评论 -
结构体内冒号:的使用——C语言位域操作
位域的问题,第一次碰见,还是在3+1的入班考试中。当时第一次见C语言这样的写法,一下给愣住了,那道题空着也没有写。等下来后,才在网上找有关的解释有个了解。但是当时并没有把它记录下来。今天在复习C语言,数据类型方面的内容时。无意中又想到了这个问题,决定把它的用法总结出来,以备以后使用。有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位。例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可。为了节省存储空间,并使处理简便,C语言又提供了一种数据结构,称为“位域”或“位段”。所原创 2010-08-10 17:03:00 · 691 阅读 · 0 评论 -
内存管理
<br />作为程序员,在写程序时,如果遇到要和内存打交道,就显的特别紧张,生怕自己的一个程序上失误,造成系统的崩溃或程序运行的终结。但是要想作为一个好的程序员,这部分是必须面对的,而且要很好的掌握它,在我们平时写程序练习时,一定要多加注意。今天看了一篇内存管理方面的文章,觉得有些东西需要我们大家都要注意,所以现在把它写出来,让我们大家都一起学习一下。<br /><br /><br />内存分配方式有三种:<br />(1):从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间原创 2010-08-07 18:22:00 · 489 阅读 · 0 评论 -
自己遇到的一些面试题总结(2)
<br />###############################<br />Q:找出第k大的数字所在的位置<br /> <br />A:<br />先找到第k大的数字,然后再遍历一遍数组找到它的位置。所以题目的难点在于如何最高效的找到第k大的数。<br /><br />我们可以通过快速排序,堆排序等高效的排序算法对数组进行排序,然后找到第k大的数字。这样总体复杂度为O(N logN)。<br /><br />我们还可以通过二分的思想,找到第k大的数字,而不必对整个数组排序。<br />从数组中随机原创 2010-10-09 17:28:00 · 1029 阅读 · 0 评论