原创 googletest學習資料

googletest學習資料   1.玩轉Google開源C++單元測試框架Google Test系列(gtest)之一 - 初識gtest 2.玩轉Google開源C++單元測試框架Google Test系列(gtest)之二 - 斷言

原创 大數據處理問題

 大數據,就是指種類多、流量大、容量大、價值高、處理和分析速度快的真實數據匯聚的產物。 通常會需要考慮存儲空間是、效率等問題。解決大數據問題一般主要的思想,1.文件切分,(將大文件切成若干個小文件進行處理),2.哈希切分,3.使用位圖

原创 二叉樹面試題(一) 重建二叉樹

問題描述: 由前序遍歷和中序遍歷重建二叉樹(前序序列:1 2 3 4 5 6 - 中序序列:3 2 4 1 6 5)數據不含重複值。 題目分析如下: 前序遍歷序列1 2 3 4 5 6,前序遍歷規則是根--左--右。

原创 部分複雜度問題

算法的時間複雜度: 算法的時間複雜度是一個函數,它定量描述了該算法的運行時間。這是一個關於代表算法輸入值的字符串的長度的函數。時間複雜度常用大O表示法,不包括這個函數的低階項和首項係數。使用這種方式時,時間複雜度可被稱爲是漸近的,它考察當

原创 哈希表(散列表)個人理解

哈希表(Hash table,也叫散列表),是根據關鍵碼值(Key value)而直接進行訪問的一種數據結構。也就是說,它通過把關鍵碼值映射到表中一個位置來訪問記錄,以加快查找的速度。這個映射函數叫做散列函數,存放記錄的數組叫做哈希表或

原创 shell腳本初識

    1.shell是什麼呢?確切一點說,Shell就是一個命令行解釋器,它的作用就 是遵循一定的語法將輸入的命令加以解釋並傳給系統。它爲用戶提供了一個向Linux 發送請求以便運行程序的接口系統級程序,用戶可以用Shell來啓動、掛起

原创 c++之複數類運算

在寫之前本人頭腦是懵的,因爲完全忘記了複數是什麼,原諒我高中數學不好。 那麼我們大體回顧一下複數,即a+bi,那麼關於它的運算法則大體有以下幾種。 1.加法法則   複數的加法按照以下規定的法則進行:設z1=a+bi,z2=

原创 linux中三種time(atime,mtime,ctime)

在windows下一個文件有三種時間屬性: 1>創建時間 2>修改時間 3>訪問時間 相似的在Linux下一個文件也有三種時間屬性: (與windows不同的是linux沒有創建時間,而多了個訪問時間) 1>

原创 TCP(一)用socket實現tcp

原理圖: 應用程序通過套接字通信,其協議如下: TCP :服務器與客戶端協議必須匹配,即都是用TCP 協議,先建立連接,再發送數據,其連接可靠。通信方式如下圖所示: TCP(Transmission Control Protocol 傳

原创 task_struct結構體

task_struct: 爲了管理進程,操作系統必須對每個進程所做的事情進行清楚地描述,爲此,操作系統使用數據結構來代表處理不同的實體,這個數據結構就是通常所說的進程描述符或進程控制塊(PCB)。 在linux系統中,這就是task

原创 生產者消費者問題

生產者消費者模型: 在實際的軟件開發過程中,經常會碰到如下場景:某個模塊負責產生數據,這些數據 由另一個模塊來負責處理(此處的模塊是廣義的,可以是類、函數、線程、進程 等)。產生數據的模塊,就形象地稱爲生產者;而處理數據的模塊,就

原创 TCP中的計時器

TCP共使用以下四種計時器:重傳計時器、堅持計時器、保活計時器和時間等待計時器。 這幾個計時器的主要特點如下: 重傳計時器(Retransmission Timer) 當TCP發送報文段時,就創建該特定報文段的重傳計時器。可能發

原创 linux中find命令詳解

Linux下find命令在目錄結構中搜索文件,並執行指定的操作。linux 下find提供了相當多的查找條件,功能很強大。由於find具有強大的功能。find 命令是 linux程序員的技能中功能最強大和最有用的命令之一。它通過許多強大

原创 linux中的粘滯位(Sticky bit)

linux下 每一個文件和目錄都有自己的訪問權限,訪問權限確定了用戶能否訪問文件或者目錄 和怎樣進行訪問。最爲我們熟知的一個文件或目錄可能擁有三種權限,分別是讀、 寫、和執行操作,在這裏不做詳細說明。我們創建一個文件後系統會默認地賦予所有

原创 tcp(二)---多進程TCP

          用多進程方式實現一個TCP併發服務器,每當一個新的客戶端連接時fork一個子進程去和它通信。(各種主流的web服務器都不是純粹的多進程方式運行,比如apache在每個進程中都用多路複用方式,直到連接數多到超過s