原创 打開MySQL代碼調試

mysql提供了詳細的調試功能,可以顯示代碼運行時信息。爲了打開調試功能,需要在編譯的時候打開調試功能,並且在運行的時候加上調試選型 1:編譯 configure with_debug=full export CFLAGS="-g3 -g

原创 關於const關鍵字

C++的const關鍵字標記了一個變量(或者函數)的常量屬性,程序員通過const關鍵字告訴編譯器:這個變量是不可修改的常量,任何企圖對其進行修改的操作不要通過編譯。 const關鍵字的使用比較容易混淆,參考《Effective C++

原创 根據主定理求遞歸時間複雜度

1. 題目      已知某程序的時間複雜度的遞推公式爲:T(n)=25T(n/5)+n^2,求T(n)? 2:主定理 3. 分析     根據主定理,題目中的f(n)=n^2正好第二種情況,結果爲T(n)=(n^2) *

原创 C++以對象作爲返回值時編譯器的優化,以及臨時變量的析構時機

印象中,函數調用的時候,參數past by value、返回值return by value,總是伴隨着對象的複製。 實際上參數傳遞是這樣的,但是返回值有可能不是這樣的(雖然大部分都是面臨拷貝構造函數的調用),這取決於編譯器。 #in

原创 Python中深拷貝與淺拷貝

一、前奏:熟悉Python內存管理 在Python中,變量在第一次賦值時自動聲明,在創建---也就是賦值的時候,解釋器會根據語法和右側的操作數來決定新對象的類型。 引用計數器:一個內部跟蹤變量 引用計數:每一個對象各有多少個引用 當對象被

原创 UNIX下的LD_PRELOAD環境變量

前言          也許這個話題並不新鮮,因爲LD_PRELOAD所產生的問題由來已久。不過,在這裏,我還是想討論一下這個環境變量。因爲這個環境變量所帶來的安全問題非常嚴重,值得所有的Unix下的程序員的注意。   在開始講述爲什麼要

原创 博客開篇

程序員從業8年,期間學過一些東西,用過一些東西,然後遺忘,然後再次翻書,周而復始,少有總結的時候。 少時學編程,有時頗有趣味。有所悟、有所得、豁然開朗、別有洞天的感覺,就像足球場上一個瀟灑利落的拉球轉身過人,很美妙。 然而一路走來,發

原创 Improve Your Python: 'yield' and Generators Explained

Prior to beginning tutoring sessions, I ask new students to fill out a briefself-assessment where they rate their under

原创 C++中的struct和class的區別

來自:http://hi.baidu.com/pengxiangbobin19890125/blog/item/b05586eee77300212df53411.html   C++中的struct對C中的struct進行了擴充,它已經不

原创 MySQL編譯DEBUG版本

在閱讀源代碼的時候,如果能夠通過GDB跟蹤,會對代碼的理解很有幫助。 1:編譯DEBUG版本,以便於GDB跟蹤    ./configure –help    一列幫助信息,最後會有以下信息:    Some influential e

原创 The Knuth-Morris-Pratt Algorithm

The Knuth-Morris-Pratt Algorithm in my own words Dec 13th, 2009 | Comments For the past few days, I’ve been reading

原创 C++中關於public、protect、private的訪問權限控制

一:成員的訪問權限 1: public訪問權限     一個類的public成員變量、成員函數,可以通過類的成員函數、類的實例變量進行訪問    <實際上,類的成員函數,可以訪問本類內的任何成員變量和成員函數>     #include

原创 C++中繼承覆寫導致基類的成員不可見

在C++中,基類定義了一個成員函數 f(),派生類定義了一個成員函數 f(int),然後派生類來調用:pDerieved->f(),結果會怎樣? 派生類的重載定義,會導致基類的函數在名稱查找的時候,不可見。但是C++的設計哲學,又可以讓你

原创 Python中的註釋寫法

1:單行註釋 Python中單行註釋爲在行首使用#字符 如: #key,value=x.popitem() 2:多行註釋 Python中多行註釋採用''' 或者""" 如: ''' import time import thr

原创 C++中內聯函數何時被編譯器禁止?

C++當中定義內聯函數,可以讓編譯器將對內聯函數的調用直接展開。 這就多少有點像宏定義了,而且沒有宏定義的缺點(預處理替換,無法當成變量鏈接到符號表、調用有可能導致參數異常被改、等等)。 使用內聯函數可以避免函數調用的開銷(棧開闢、返