原创 c++引用深入分析

序 幾天前寫過關於引用和指針的區別,當時心裏就有一個疑惑,既然都說引用是對象的一個別名,那引用變量到底有沒有被分配存儲空間。我去Google了一下,發現網上有兩種截然不同的看法,一種說是在棧裏分配了空間,另一種則是說沒有分配空間,

原创 指針變量和引用變量的區別

序 最近在逛StackOverflow,有個人問了一個很好的問題“What are the differences between a pointer variable and a reference variable in

原创 關於false aliasing的一些看法

序 在網上看到一個很有趣的代碼,如下: int main(){ const int n = 100000; #ifdef ALLOCATE_SEPERATE double *a1 = (double*)malloc

原创 Item 47: 請使用traits class表現類型信息

爲了說明traits class的作用,這一節用迭代器做了一個例子。 STL有五種迭代器: (1)Input迭代器只能向前移動,且一次一步,客戶只可讀取它們所指的東西,而且只能讀一次;這一類代表是istream_iterator。

原创 c++強制類型轉換

強制轉換運算符 有幾種特定於 C++ 語言的轉換運算符。這些運算符用於刪除舊式 C 語言轉換中的一些多義性和危險繼承。這些運算符是: dynamic_cast 用於多態類型的轉換。 static_cast 用於非多態類型的轉換。 co

原创 Item 24: 若所有參數皆需要類型轉換,請爲此採用non-member函數

這裏的non-member函數對應的另一個函數是member函數,member函數暗含着一個this參數,所謂的“若所有參數比需要類型轉換,必須採用non-member函數”的原因就在於,member函數暗含的*this參數是轉換不了的!

原创 Item 41: 瞭解隱式接口和編譯期多態

通常顯式接口由函數的簽名式(函數名稱、參數類型、返回類型)構成。例如 Widget class: class Widget{ public: Widget(); virtual ~Widget(); virt

原创 Item 43: 學習處理模板化基類內的名稱

模板都會編譯兩次,第一次檢查語法,第二次具現化。假如模板有不同參數,則會對每個參數都具現一次。如果參數不確定,則不可能具現,也就不知道它的行爲。  一個類模板繼承於另一個相同模板參數的基類,派生類使用到基類的成員時,編譯器往往會報錯該成

原创 Item 45: 利用成員函數模板接受所有兼容類型(智能指針的部分實現)

真實指針做得很好的一件事是,它支持隱式轉換,如下: class Top { ... }; class Middle: public Top{ ... }; class Bottom: public Middle {

原创 2017年網易有道內推編程題

第一題: 洗牌在生活中十分常見,現在需要寫一個程序模擬洗牌的過程。現在需要洗2n張牌,從上到下依次是第1張,第2張,第3張一直到第2n張。首先,我們把這2n張牌分成兩堆,左手拿着第1張到第n張(上半堆),右手拿着第n+1張到第2n張(下

原创 essential c++ 練習題(1)

今天終於把第三章“泛型編程的風格”給看完了,趁着知識點還熱乎,做了下課後的習題3.1和3.2,由於這兩道題基本類似,所以代碼把代碼也寫到一起去了。 /* @author NvRom 2016.5.14 in USTC 題

原创 順時針打印矩陣

題目見此鏈接 簡單說一下思路:打印總共可分爲四部,從左往右,從上到下,從右往左,從下到上。執行完這四步後,相當於對原矩陣剝了一層皮,可看成一個新的待打印矩陣。然後重複執行上述四步 class Solution { public:

原创 Gaussian Mixture Model(GMM)

事實上,GMM 和 k-means 很像,不過 GMM 是學習出一些概率密度函數來(所以 GMM 除了用在 clustering 上之外,還經常被用於 density estimation ),簡單地說,k-means 的結果是每個數據點

原创 essential c++ 練習題(2)

早上起來寫了課後習題3.3,進一步熟悉瞭解map、vector等容器的一些用法。在這道題中需要注意的是,因爲題目的需要,將map的value設置爲vector < string >。代碼部分都有詳細註釋,應該能看懂~ /* @author

原创 essential c++讀書筆記(1)

這一學期給自己定的計劃,其中之一就是學習泛型編程,這篇文章也算是這個計劃的開山之作吧,以後有什麼心得體會也會在這裏跟大家分享。 至於我本人,水平實在不咋滴= = 問:給定一個vector以及一個value,輸出vector中所有小於該