原创 STL源碼分析之pair

pair主要是用於map中,它的實現代碼很簡單,構造的操作也較少 #ifndef __SGI_STL_INTERNAL_PAIR_H #define __SGI_STL_INTERNAL_PAIR_H __STL_BEGIN_NAME

原创 web服務器開發之簡單的線程池實現

線程池就是把多個進程放在一個假想容器裏統一管理。內部由任務隊列,一堆線程,管理者線程組成. (1)線程管理器:對應一個線程,該線程就是充當一個管理者身份,其能夠創建並管理線程池。對線程進行添加,修改,刪除 (2)工作線程:線程池中執行任務

原创 深入剖析poll,epoll機制(源碼分析)

之前理解了一下select,poll,epoll機制,知道他們的區別,但對於是什麼造成這種區別或是具體什麼操作讓epoll擁有更好的性質還是一知半解,於是決心研究下他們的源碼 一.首先來看poll機制 int poll (struct

原创 STL源碼分析之vector

Vector是序列容器的一種,分配的是一段連續的空間,所以它支持下標訪問,同時它另一特點是可以自行擴充空間,每次是以原大小兩倍來擴充,是另外配置的一塊空間,將原內容拷貝過去,所以當對vector的空間進行重新配置時,指向原vector的迭

原创 第二次讀c++ primer小筆記

總結下c++ primer裏我認爲比較雜碎且重要的小知識點 函數篇 數組傳值          不允許拷貝數組,數組傳參有一下三種方式         (const int *a),(const int a[]),(const int

原创 web服務器開發之Reactor模式以及實現(c++)

     一.概述 Reactor是一個使用了同步非阻塞的I/O多路複用機制的模式,I/O多路複用是指使用一個線程來檢查多個文件描述符(Socket)的就緒狀態,比如調用select,poll,epoll函數(現在多使用epoll函數,關

原创 寫一個簡易的web服務器

根據csapp第三部分,來寫個小小的總結 web服務器使用http協議和他們的客戶端進行通信,瀏覽器向服務器請求靜態或動態的內容。對於靜態請求,當它接收到來自客戶端的url訪問後,它需要解析url,獲得客戶端欲訪問文件的路徑,服務端請求到

原创 STL源碼分析之stack,queue

stack是把容器封裝後的產物,底層實現是deque容器,只是改變了容器的接口,所有代碼就簡單得多 template <class T, class Sequence = deque<T> > template <class T, cl

原创 分析c++引用與指針的區別

我看網上對引用說的大多很寬泛,是一塊內存的別名,那它具體是怎麼產生的,它本身佔據內存嗎,怎麼保存的,保存在哪兒的 寫個簡單的小程序來反彙編看看 #include <cstdio> int main() { int a = 2;

原创 經典排序算法總結及關鍵代碼(c++)

主要是理解動圖,結合圖和代碼來分析理解。 冒泡排序 平均複雜度:O(n2) 空間複雜度:O(1) 穩定性:穩定 冒泡排序 是一種簡單的排序算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工

原创 Linux中的文件描述符詳解

  1. 概述     在Linux系統中一切皆可以看成是文件,文件又可分爲:普通文件、目錄文件、鏈接文件和設備文件。文件描述符(file descriptor)是內核爲了高效管理已被打開的文件所創建的索引,其是一個非負整數(通常是小整數

原创 劍指offer之字符串題型總結

題庫裏關於字符串的題型大致是以下幾類 字符串,字符數組,整數等轉換 規則判斷 數字運算 與數組操作相關 動態規劃 高級數據結構 1.字符串,字符數組,整數等轉換 (1)字符串與字符數組的轉換 int main() {

原创 每日一封裝之大根堆

STL容器裏的優先隊列就會基於大根堆算法在vector基礎上實現的,原理較簡單,主要是節點的調整,當插入一個節點,是先把它放在容器末尾,再上調元素。刪除元素是先找到要刪除的那個元素,用容器末尾的值覆蓋它,再依次下調節點 template

原创 如何在dosbox裏進行彙編debug

一. 環境搭建 首先要搭建彙編環境,下載dosbox和masm文件,注意文件裏要至少包含masm.exe, link.exe, debug.exe, exe2bin.exe這四個可執行文件,在某盤裏創建文件夾dos,將masm文件夾放在裏

原创 Linux平臺系統狀態檢測與展示

Linux是一個文件系統,任何有關Linux系統運行的信息都會被包含到特定的文件裏,這次我實現的是將cpu利用率與內存利用率和網速展示在前臺,首先是讀取相關文件信息插入到mysql數據庫,再從數據庫讀取信息到前端 0-1 cpu利用率 在