一直以來,都在關注C++的語言,甚至語言的本身,但是后來覺得C++的確有很多詭異的事情
?,雖然有很多人解釋的很好,解釋的很合理,但是還是會有一種突兀的感覺,甚至覺得長時間的看下去,我最多知道如何用,如何更有效率地用C++,也許我的思維會更加富有商業(yè)開發(fā)價值,但是顯然會更有局限性,更糟糕的是我會不會成為代碼的奴隸?汗。。。基于前段時間的面試的經(jīng)驗,還是覺得算法是很重要的,而且一旦能夠靈活使用,那種感覺一定更酷。所以決定還是好好學習算法,雖然以前大學的時候學過一點,但是現(xiàn)在真的好慚愧,以前都在做什么?自己也不知道了。但是男人,一定要做以后不會后悔的事情。相信憑借自己的聰明還是可以好好的學習到算法的精髓的。前進!兩年以后希望能夠直接轉正微軟。那時不希望看到遺憾。剛好手頭有一本算法的書,自己實踐了一番全排序【注:應該是全排列】的遞歸算法。以后不斷更新,希望博客能伴隨我的成長。

/** *//*******************************************************************************
*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。虛函數(shù)是按照函數(shù)名來加入override機制的,而不考慮函數(shù)參數(shù)的。
4。如果一個基類的虛函數(shù)是public的,但是子類卻覆蓋了一個一樣的虛函數(shù)實現(xiàn),但是改成了private,這個時候又有什么樣的二義性?
5。為什么要有 "->" 和 "." 這樣的兩種訪問對象成員的符號?引用的存在是否又能否決你的答案?
6。C++標準為什么制定了很多feature以及function,卻不制定implemention?導致了C++的靈活還是導致了缺乏平臺遷移性的C++的死穴?
BTW,也許是自己對C++的語言還沒有徹底覺悟,但是C++還是有太多的牛角尖可以鉆的,可是這些都是無關緊要的了。當然我提的這一些也許可以算作是詭異,也許想來是想當然的yes or no的。所以我不是針對語言本身的,相反我還是喜歡C++的,畢竟因為對他的很多的迷惑讓我在不斷追求答案的同時得到很多。
posted on 2007-04-25 16:58
MicroYang 閱讀(1498)
評論(6) 編輯 收藏 引用