原创 牛牛愛66

今天面試了一道算法題,這到算法題我寫的有問題,我在這裏記錄一下。 衆所周知,牛牛不喜歡6這個數字(因爲牛牛和66發音相近)所以他想知道,不超過n位十進制數中有多少個數字不含有連續的6(從1開始算的) 輸入只包含一個正整數n(1<=n<20

原创 數據庫髒讀,不可重複度,幻讀以及對應的事務隔離級別

1. 髒讀: 所謂髒讀,即“無效事務讀出”。也就是說,一個事務讀取到另一個事務沒有提交的數據。我們舉個例子:事務A1修改了一行數據,但是還沒有提交(還沒寫入硬盤),這時候事務A2讀取了被事務A1修改後的數據,之後事務T1因爲一些原因Rol

原创 stl vector 容量與大小之間的關係

當對vector進行push_back等操作的時候,當超出之前內存所分配的部分之後,需要新增內存空間存放更多元素。將原來的數據複製過來,釋放之前的內存,然後插入新增加的元素;那麼這個過程是怎麼樣的呢?我們用代碼來試一下: VS2013環境

原创 編譯原理 推導和歸約

1. 推導         我們還是從一個英文句子來入手:         從上面一張圖,我們看出文法是如何 推導 出一個英文句子的。從上往下看,從句子開始,句子可以被替換成<名詞短語><動詞短語>。而<名詞短語>又可以被替換成<形容詞

原创 Linux和windows下多線程的區別

        Linux和windows對於多線程的多線程的實現是不同的。總體來說,Linux系統下,是用戶級的多線程,也就是說內核是並不清楚多線程的存在的;而windows下則是核心級別的線程,內核可以直接對於線程進行管理。    

原创 函數指針以及在類成員函數中應用函數指針

什麼是函數指針 如果在程序中定義了一個函數,那麼在編譯時系統就會爲這個函數代碼分配一段存儲空間,這段存儲空間的首地址稱爲這個函數的地址。而且函數名錶示的就是這個地址。既然是地址我們就可以定義一個指針變量來存放,這個指針變量就叫作函數指針變

原创 編譯原理 自頂向下分析

從頂部的根節點到底部的葉節點分析方法叫做自頂向下分析。我們知道頂部的根節點可以表示成一個文法的開始符號S,所以說,自頂向下分析可以看成是從文法的開始符號S推導出詞串w的過程。                                

原创 用模板類實現shared_ptr和unique_ptr

今天面試的時候被問到了一個問題,要我用模板類實現一個shared_ptr. 坦白來說這道題我並不會做,因爲我對於shared_ptr的認知僅僅停留在引用計數上面。所以查閱了資料寫了一份代碼出來,希望對於更深入理解共享智能指針有幫助吧。 首

原创 編譯原理 文法

什麼是文法?我們從一個自然語言的例子講起:                                      這是一個簡化版本的英文文法。比如一個句子是由名詞短語和動詞短語構成的。名詞短語由形容詞和名詞短語構成。從這個例子中我們能

原创 C++ 泛型編程

        泛型編程就是獨立於確定的類型的方式編寫代碼,需要提供具體程序實例所操作的類型或者值,而不是之前確定的。比如在stl容器中,vector<int>, vector<char> vector<double> 用的是不同的數據類

原创 數據庫的四大事務特性

        首先我們需要清楚,所謂數據庫事務就是一串連續的數據庫操作動作,是數據庫執行過程中的一個邏輯單位。通俗來說,就是一串增刪查改的集合。對於每一個數據庫事務,它把數據庫從一個一致的狀態轉換到另一個一致的狀態,比如數據庫操作前是一

原创 C++11常見新特性

1. auto關鍵字 auto關鍵字起到的作用是自動類型判斷。在聲明變量的時候根據左值可以判斷出類型並自動爲此變量選擇相匹配的類型。比如: #include <iostream> #include <string> #include <

原创 C++ 自己實現一個unordered_map(hashmap)

今天面試的時候遇到面試官出了一個問題,要實現一個unordered_map. 我實現的不太好,所以面試之後重新自己整理實現了一個unordered_map,在此記錄一下。 首先unordered_map的底層實現是哈希表。那麼對於任何一個

原创 C++11新特性 右值引用與移動語義

        右值引用作用是可以減少內存拷貝次數,從而優化性能。         首先,什麼是右值?右值是一個與左值相區分的概念。左值是:既能出現在等號左邊也能出現在等號右邊的變量或表達式,比如int a = 5,那麼a就是一個左值,因

原创 C++11新特性之 可變參數模板

C++ 11的可變模版參數是其新增的最強大的特性之一。通過對參數進行了泛化,可以表示從0到任意個數、任意類型的參數。我們知道對於一個模板類來說,通常只能含固定數量的模版參數,可變模版參數無疑是一個巨大的改進。下面來具體說一下: 可變參數模