- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 判断一个函数里对参数的修改是否对外部产生影响
对于普通的swap(int a,int b)肯定不会对外界产生影响的对于传引用swap(int &a,int &b)对a,b的修改肯定会对外界产生影响现在主要说一下参数为指针 swap(int *a, int *b)或者更复杂的void func(int ***a,int ***b):判断的依据就是如果a为左值的情况下,如果前面有 * ,则修改外界产生影响,否则没有*a=5;有
2006-09-26 08:49:00 1203
原创 将给定的字符串里面的每个字符左移N位(TopCoder)
对于给定的字符串,如"ABC",如果每个字符左移N=1位,则为"ZAB",在TopCoder上作的,时间不长,感觉自己的方法已经很简练了,但是只有160分(满250),郁闷~给个更好的解法~ Problem Statement
2006-09-25 19:46:00 1520
原创 再一次认识到C函数中参数传递:传值。
一般是以swap(int a,int b)引入的 参数传递时传值得,在函数中对参数的修改不对外界产生影响。于是就引入了传指针和引用。swap(int *a,int *b)传过来的是指向整型值的指针,这样就可以对他指向的内容操作。一向以为自己对这些东西掌握得很好,今天写了一个avl树的程序,关于root在构造函数里面定义为root=NULL,在插入节点时,使用的是递归方法,希望把root
2006-09-25 14:55:00 1098
原创 一沓扑克牌中剔除等于13或者相邻之和等于13的扑克牌,剩余多少
一沓扑克牌中剔除等于13或者相邻之和等于13的扑克牌,如果最后一个和第一个之和为13,同样剔除最后剩余的扑克牌数目Tommy is learning a simple card game called Circle. To play the game, the single player shuffles a deck of cards. He or she then flips thro
2006-09-25 12:08:00 1510
原创 如何定义自己的迭代器
基本上iterator必须做两件事情1)必须指向某物2)他必须能够遍历任何一个有效区间。一旦定义了operator* operator++通常剩下的行为就比较简单了。必须确定iterator被正确的定义为constant或者mutable。这是常犯的错误之一。不过input iterator不在乎这一点,因为具有只读性。outputIterator具有只写性。对于其他的类型的iterator就不一
2006-09-24 15:12:00 4722
原创 整型和字符串的转化
一。整型到字符串 给定的一个整型数,如何转化成字符串?1. int i=255; char a[N]; sprintf(a,"%d",i); ok2. string str= itos(i); string itoa(int i) { string tmp=""; do { char ch = i%10 + 0; tmp.insert(0,&ch);
2006-09-24 15:03:00 1398
原创 过桥时间最短的算法实现(TopCoder)
问题描述:一群人晚上过桥,每次只能过2个人,并且需要一盏灯。 每个人过桥时间不同。计算最短时间给出是过桥时间如{1,2,5,10},计算出最小时间17首先 1,2 过去 时间 2 1 回来 时间 1 5,10 过去 时间 10 2 回来 时间 2 1,2 过去 时间 2
2006-09-22 11:14:00 4274
原创 如何使用位运算实现循环移位?
循环移位区别于一般移位的是移位时没有数位的丢失。循环左移时,用从左边移出的位填充字的右端,而循环右移时,用从右边移出的位填充字的左侧。这种情况在系统程序中时有使用,在一些控制程序中用得也不少。设有数据说明:a=01111011,循环左移2位 正确结果: 11101101过程:b=a>>(8-2) 用来得到正常左移丢失的位和循环移位后其正确位置 b=00000001; a=a
2006-09-20 17:22:00 2055
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人