博文
程序员少走弯路的十条忠告 (2007-04-12 13:18:00)
摘要:刚刚走上社会的年轻人,充满了蓄势待发的豪情、青春的朝气、前卫的思想,梦想着丰富的待遇和轰轰烈烈的事业。可是,社会毕竟是一所包罗万象、喧嚣复杂的大学校,这里没有寒暑假,拒绝虚假和肤浅,更拒绝空想和庸碌,难以预告何时开课何时放学。
如何在涉世之初少走弯路,有一个好的开端,开始一番成功的事业?以下是一些先行者积累的10条有益的涉世忠告。好好地遵循、把握这些忠告和建议吧,比起所学的课堂课程来,它毫不逊色!
1. 买个闹钟,以便按时叫醒你。贪睡和不守时,都将成为你工作和事业上的绊脚石,任何时候都一样。不仅要学会准时,更要学会提前。就如你坐车去某地,沿途的风 景很美,你忍不住下车看一看,后来虽然你还是赶到了某地,却不是准时到达。“闹钟”只是一种简单的标志和提示,真正灵活、实用的时间,掌握在每个人的心 中。
2. 如果你不喜欢现在的工作,要么辞职不干,要么就闭嘴不言。初出茅庐,往往眼高手低,心高气傲,大事做不了,小事不愿做。不要养成挑三拣四的习惯。不要雨天烦打伞,不带伞又怕淋雨,处处表现出不满的情绪。记住,不做则已,要做就要做好。
3. 每个人都有孤独的时候。要学会忍受孤独,这样才会成熟起来。年轻人嘻嘻哈哈、打打闹闹惯了,到了一个陌生的环境,面对形形色色的人和事,一下子不知所措起 来,有时连一个可以倾心说话的地方也没有。这时,千万别浮躁,学会静心,学会忍受孤独。在孤独中思考,在思考中成熟,在成熟中升华。不要因为寂寞而乱了方 寸,而去做无聊无益的事情,白白浪费了宝贵的时间。
4. 走运时要做好倒霉的准备。有一天,一只狐狸走到一个葡萄园外,看见里面水灵灵的葡萄垂涎欲滴。可是外面有栅栏挡着,无法进去。于是它一狠心绝食三日,减肥 之后,终于钻进葡萄园内饱餐一顿。当它心满意足地想离开葡萄园时,发觉自己吃得太饱,怎么也钻不出栅栏了。相信任何人都不愿做这样的狐狸。退路同样重要。 饱带干粮,晴带雨伞,点滴积累,水到渠成。有的东西今天似乎一文不值,但有朝一日也许就会身价百倍。
5. 不要像玻璃那样脆弱。有的人眼睛总盯着自己,所以长不高看不远;总是喜欢怨天尤人,也使别人无比厌烦。没有苦中苦,哪来甜中甜?不要像玻璃那样脆弱,而应像水晶一样透明,太阳一样辉煌,腊梅一样坚强。既然睁开眼睛享受风的清凉,就不要埋怨风中细小的沙粒。
6. 管住自己的嘴巴。不要谈论自己,更不要议论......
C++引用(源)(2007-04-12 13:12:00)
摘要:引用是C++引入的新语言特性,是C++常用的一个重要内容之一,正确、灵活地使用引用,可以使程序简洁、高效。我在工作中发现,许多人使用它仅仅是想当然,在某些微妙的场合,很容易出错,究其原由,大多因为没有搞清本源。故在本篇中我将对引用进行详细讨论,希望对大家更好地理解和使用引用起到抛砖引玉的作用。 引用简介 引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样。 引用的声明方法:类型标识符 &引用名=目标变量名; 【例1】:int a; int &ra=a; //定义引用ra,它是变量a的引用,即别名 说明: (1)&在此不是求地址运算,而是起标识作用。 (2)类型标识符是指目标变量的类型。 (3)声明引用时,必须同时对其进行初始化。 (4)引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。 ra=1; 等价于 a=1; (5)声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。故:对引用求地址,就是对目标变量求地址。&ra与&a相等。 (6)不能建立数组的引用。因为数组是一个由若干个元素所组成的集合,所以无法建立一个数组的别名。 引用应用 1、引用作为参数 引用的一个重要作用就是作为函数的参数。以前的C语言中函数参数传递是值传递,如果有大块数据作为参数传递的时候,采用的方案往往是指针,因为这样可以避免将整块数据全部压栈,可以提高程序的效率。但是现在(C++中)又增加了一种同样有效率的选择(在某些特殊情况下又是必须的选择),就是引用。 【例2】:void swap(int &p1, int &p2) //此处函数的形参p1, p2都是引用 { int p; p=p1; p1=p2; p2=p; } 为在程序中调用该函数,则相应的主调函数的调用点处,直接以变量作为实参进行调用即可,而不需要实参变量有任何的特殊要求。如:对应上面定义的swap函数,相应的主调函数可写为:main( ){ int a,b; cin>>a>>b; //输入a,b两变量的值 swap(a,b); /......
C++引用规则 (2007-04-12 13:09:00)
摘要:首先,引用是C++引入的新语言特性,是一个变量的别名, 它必须指向一个实实在在的地址(且这个地址要在引用产生作用时还在内存中),系统始终不为其分配内存,只是新建了一对对应关系。正因如此,1、引用必须在定义时初始化,且初始化后程序不能改变此引用关系(引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,且不能再把该引用名作为其他变量名的别名。)2、所以允许指针的引用,而不允许引用的指针。
C++中有四种引用方式:1、 独立引用。 如 int a = 5; int & ref = a; // cout<<&a<<" "<<&ref<<endl; 可以检测到二者是同一个地址 0013FF60 0013FF60
2、 返回引用。int & get( int * a, int i ) { return *(a+i); } // 返回数组的 i+1 个元素的值void main() { int array[4] = {1, 2, 3, 4 }; int i = 0; i = get( array, 2 ); cout<<i<<endl; // 结果为3 system( "pause" );}// 补: 引用作为返回值,必须遵守以下规则:(参考: http://hi.baidu.com/pavelliu/blog/item/33ec8a35876ddc1191ef395b.html) (1)不能返回局部变量的引用。这条可以参照Effective C++[1]的Item 31。主要原因是局部变量会在函数返回后被销毁,因此被返回的引用就成为了'无所指'的引用,程序会进入未知状态。 (2)不能返回函数内部new分配......
ACM上题的精确分类(2007-04-12 13:06:00)
摘要:这是PKU上的ACM题:
下面是一个列表,可以从简单的开始作
说明:递推算动归, 离散化算数据结构, 并查集算数据结构, 博弈算动归, 麻烦题一般都是不错的综合题, 最短路算图论,数据的有序化算排序
测试
麻烦题:1697, 1712, 1713, 1720, 1729, 1765, 1772, 1858, 1872, 1960, 1963, 2050, 2122, 2162, 2219, 2237,
简单题目:1000, 1003, 1004, 1005, 1007, 1046, 1207, 1226, 1401, 1504, 1552, 1607, 1657, 1658, 1674, 1799, 1862, 1906, 1922, 1929, 1931, 1969, 1976, 2000, 2005, 2017, 2027, 2070, 2101, 2105, 2109, 2116, 2136, 2160, 2190, 2232, 2234, 2275, 2301, 2350, 2363, 2389, 2393, 2413, 2419,推荐:1063, 1064, 1131, 1140, 1715, 2163,
杂题:1014, 1218, 1316, 1455, 1517, 1547, 1580, 1604, 1663, 1678, 1749, 1804, 2013, 2014, 2056, 2059, 2100, 2188, 2189, 2218, 2229, 2249, 2290, 2302, 2304, 2309, 2313, 2316, 2323, 2326, 2368, 2369, 2371, 2402, 2405, 2407,推荐:1146, 1147, 1148, 1171, 1389, 1433, 1468, 1519, 1631, 1646, 1672, 1681, 1700, 1701, 1705, 1728, 1735, 1736, 1752, 1754, 1755, 1769, 1781, 1787, 1796, 1797, 1833, 1844, 1882, 1933, 1941, 1978, 2128, 2166, 2328, 2383, 2420,
高精度:1001, 1220, 1405, 1503......
IT精英完美的七种生活方式(2007-04-12 13:02:00)
摘要:新年之后,IT精英们又要开始为工作而忙碌了。每天工作10多个小时、一周工作六七天、饮食不规律、睡眠质量不高,IT精英的工作和生活状态严重破坏了他们的健康状况。
针对IT从业人员经常要面对的电脑辐射、熬夜加班、腰酸背痛、睡眠缺乏、饮食结构不合理等现状,武警总医院体检中心主任王春秋教给他们七招“自救”方法。
1.按生物钟作息。一个人的生物钟,是其体内各个器官所固有的生理节律。人们应当按照自身的生理节律来安排作息。如果反其道而行之,晚上熬夜,三餐不定时,自然整天昏昏沉沉,疲惫不堪。
2.强化三餐营养。一日三餐食物要品种多样,各品种之间的比例要均衡,不可偏废某些品种。蔬菜、禽肉、豆类、鱼类、水果、酸奶等不可或缺。
3.学会主动休息。身处IT界若不想“挨踢”,就得勤奋工作。但持续的高强度工作会加重疲劳,要消除疲劳也需要更长的时间。如果等到累了再休息,效果往往不明显,因此要学会主动休息。
4.定期检查。无论年轻年老,不论工作性质如何,人们最好每年体检一次。体检项目不可缺少有关心脏的项目,以及对高血压、高血脂、高血糖的筛查,以便发现隐情及时治疗。
5.善于劳逸结合。人人都要学会调节生活,短期旅游、定期锻炼、听音乐、聚会聊天,都是解除疲劳、放松心情的有效方法。
6.坚持合理运动。IT人士的工作状态多处于静态,这极易使人疲惫。应坚持每天散步半个小时,或每周进行3-4次温和的户外活动,每次30分钟。
7.保持心情舒畅。失望、焦虑、恐惧、沮丧等不良情绪可使人心力交瘁。有了烦恼应及时排解,努力保持乐观向上的生活态度,有助于提高工作效率。......
C++对象布局及多态之虚成员函数如何调用(2007-04-12 12:58:00)
摘要:在构造函数中调用虚成员函数,虽然这是个不很常用的技术,但研究一下可以加深对虚函数机制及对象构造过程的理解。这个问题也和一般直观上的认识有所差异。先看看下面的两个类定义。
struct C180 { C180() { foo(); this->foo(); } virtual foo() { cout << "<< C180.foo this: " << this << " vtadr: " << *(void**)this << endl; }};
struct C190 : public C180 { C190() {} virtual foo() { cout << "<< C190.foo this: " << this << " vtadr: " << *(void**)this << endl;&n......
图算法的实现(2007-04-11 23:12:00)
摘要:#define UNVISITED 0#define VISITED 1#define INFINITY 9999999#define ROOT -1
#include <iostream.h>#include <fstream.h>#include "LList.h"#include "minheap.h"#include <queue>
//数据结构部分:
/**************** 图的边的定义 ***************/class Edge{public: int from,to,weight; //from是边的始点,to是边的终点,weight是边的权
Edge() //构造函数 { from=-1; to=-1; weight=0; } Edge(int f,int t,int w) //构造函数 { from=f; to=t; weight=w; }
bool operator >(Edge oneEdge) //定义比较运算符>,边的大小比较即为边的权的大小比较 { return weight>oneEdge.weight; }
bool operator <(Edge oneEdge) //定义比较运算符<,边的大小比较即为边的权的大小比较 { return weight<oneEdge.weight; }};
/**************** 图的定义 ******......
程序员真的很容易老吗?(2007-04-10 18:03:00)
摘要: 有的时候真的觉得学计算机使人变了。变老了.变的寡言了。变的很自闭了。我很不喜欢这样的生活但是有能怎么样呢?自己已经选择了着条路了。下面是我在读大一的时候看自己还有几份天真和好动.现在的我看以前都怎么是想要是能时间倒流真的好啊。
也许我的计算机学习之路就是从这个时候开始的吧.我很感谢这个破房子但是就是这个地方使我真的觉得自己已经走上了这条路了。我并不是从教室中来感触我要学计算机了。而是这破旧的房子.也许我那时并没有感上计算机还觉得自己还有救.
回顾这两年我真的浪费了许多的大学时光.我没有真正的体会大学生活。我一直处于一个社会人.我犹豫了很长.我是不是该走这条路。然而这个很长.让我在虚幻中度过了两年的大学生活。学习完全没有.别人都说我们学校这么好的环境你怎么不学习.是啊。何止是别人.我自己每次从外面回来上课.我就有一种很自卑的感觉.我看见的同学都是手拿着.一脸紧张的样子,似乎大学马上就要毕业。然而我呢?每天在酒吧,混乱的社会中遨游.
现在的我找到计算机这条路上了。但是慢慢的失去自我了。我有点受不了,在这一行中要付出的许多.我觉得自己真的变老了。我没有了。我以前那样的善谈了。也没有以前的那样活泼潇洒了。我恨这一切吗?但是又是自己选择的.我没有退路了。
我现在要做的是在不失自我的学习计算机.保持我的个性踏入程序员这条路。我不知道能不实现自己今天的若言.但是时间能证明.努力吧!
......
图的建立,深度搜索和广度搜索的实现(2007-04-10 17:45:00)
摘要:// 图的建立和深度搜索和广度搜索的实现#include <iostream>#include <queue>using namespace std;const int UNVISITED=1000;const int VISITED=100;
class Graph{public: virtual int n()=0; virtual int e()=0; virtual int first(int)=0; virtual int next(int,int)=0; virtual void setEdge(int, int, int)=0; virtual void delEdge(int, int)=0; virtual int weight(int, int)=0; virtual int getMark(int)=0; virtual void setMark(int,int)=0;};class Edge{public: int vertex,weight; Edge() { vertex=-1; weight=-1; } Edge(int v,int w) { vertex=v; weight=w; }};
class Graphm:public Graph{private: int numVertex,numEdge; int **matrix; int *mark;public: Graphm(int numVert) { int i,j; numVertex=numVert;&n......
