一直以来,都在关注C++的语言,甚至语言的本身,但是后来觉得C++的确有很多诡异的事情
,虽然有很多人解释的很好,解释的很合理,但是还是会有一种突兀的感觉,甚至觉得长时间的看下去,我最多知道如何用,如何更有效率地用C++,也许我的思维会更加富有商业开发价值,但是显然会更有局限性,更糟糕的是我会不会成为代码的奴隶?汗。。。基于前段时间的面试的经验,还是觉得算法是很重要的,而且一旦能够灵活使用,那种感觉一定更酷。所以决定还是好好学习算法,虽然以前大学的时候学过一点,但是现在真的好惭愧,以前都在做什么?自己也不知道了。但是男人,一定要做以后不会后悔的事情。相信凭借自己的聪明还是可以好好的学习到算法的精髓的。前进!两年以后希望能够直接转正微软。那时不希望看到遗憾。刚好手头有一本算法的书,自己实践了一番全排序【注:应该是全排列】的递归算法。以后不断更新,希望博客能伴随我的成长。
/** *//*******************************************************************************
*Prototype: void Perm(int source[], int iFrom, int iLength)
*Parameter: iFrom: The index of first element, which is used to enumrate.
* iLength: The length of source.
*Return: N/A
*Description: It uses recursive to enumerate all cases.
******************************************************************************/
void Perm(int pSource[], int iFrom, int iLength)
{
// If error input, return.
if (!pSource) {
return;
}
if (iFrom >= iLength - 1) {
// If all are ready, print them.
for (int i = 0; i < iLength; ++i) {
printf(" %3d ", pSource[i]);
}
printf("\n");
} else if (pSource && (iFrom >= 0) && iLength && (iFrom < iLength)) {
// If not ready, generate these recursively.
// Enumerate the first element before.
Perm(pSource, iFrom + 1, iLength);
// Enumrate the others except the first.
for (int i = iFrom + 1; i < iLength; ++i) {
// Swap the first to each others
int iTemp = pSource[iFrom];
pSource[iFrom] = pSource[i];
pSource[i] = iTemp;
// Recursively
Perm(pSource, iFrom + 1, iLength);
// Repaire
pSource[i] = pSource[iFrom];
pSource[iFrom] = iTemp;
} // End for
} // End if
}
附:
C++的诡异:
1。const 类型的值。如果取得地址,再强行修改地址指向的内容,那么这个时候形成二义性。
2。你有没有见过 class A; A a = A();这样的声明方式?存在的道理?
3。虚函数是按照函数名来加入override机制的,而不考虑函数参数的。
4。如果一个基类的虚函数是public的,但是子类却覆盖了一个一样的虚函数实现,但是改成了private,这个时候又有什么样的二义性?
5。为什么要有 "->" 和 "." 这样的两种访问对象成员的符号?引用的存在是否又能否决你的答案?
6。C++标准为什么制定了很多feature以及function,却不制定implemention?导致了C++的灵活还是导致了缺乏平台迁移性的C++的死穴?
BTW,也许是自己对C++的语言还没有彻底觉悟,但是C++还是有太多的牛角尖可以钻的,可是这些都是无关紧要的了。当然我提的这一些也许可以算作是诡异,也许想来是想当然的yes or no的。所以我不是针对语言本身的,相反我还是喜欢C++的,毕竟因为对他的很多的迷惑让我在不断追求答案的同时得到很多。
posted on 2007-04-25 16:58
MicroYang 阅读(1488)
评论(6) 编辑 收藏 引用