原创 Skip List

Skip List 是什麼 我們常用數組和鏈表來組織數據,對於已排序的數據,數組的查詢時間複雜度可以是Θ(lgn)(二分查找),插入和刪除都是Θ(n)。 鏈表提供了一種更加靈活的組織方式,插入和刪除的時間複雜度是Θ(1),查詢的時間複雜度

原创 程序員的自我修養--可執行文件的裝載與進程

進程的虛擬地址空間 C語言指針大小的位數與虛擬地址空間的地址位數相同,即32位平臺下進程的虛擬地址空間爲4G 由於程序在運行是處於操作系統的監管下,進程的虛擬地址空間都在操作系統的掌握中,只能使用操作系統分配給進程的地址。如果訪問未經允

原创 C++11之初始化成員變量

C++98中的成員變量初始化 在聲明類的時候,對於靜態類型並且是常量類型,同時是枚舉或者是整型的變量可以使用=在聲明時初始化。 對於不符合上述要求的靜態變量可以在類外使用=進行初始化 對於非靜態類型可以說個初始化列表進行初始化 使用()

原创 libprocess初探

libprocess介紹 一直在學習mesos相關的底層實現,mesos底層依賴還是挺多的,mesos就是其中的一個,而且是很重要的一部分。libprocess是受Erlang的啓發,基於actor模型進行開發的。libprocess的核

原创 STL中的swap函數

swap函數執行會調用容器內數據類型的,拷貝構造和賦值函數調用 對自定義類型使用STL algorithm中的swap函數,會調用自定義的類型的拷貝構造函數一次,賦值函數兩次;自定義類型中沒有定義那麼就會使用默認的拷貝構造函數和賦值函數。

原创 C++11之左值、純右值和將亡值

在C++11中所有的值一定屬於左值、純右值和將亡值三種值之一,分別介紹一下這三種類型。 左值與右值 在C++中定義左值與右值的比較標準的方法是根據其可以取地址來判斷。左值就是可以對變量進行取地址或者有名字的變量,按照C語言中的規定也就是說

原创 函數對象

函數對象(Function Object)又稱函數對象類、仿函數、高階函數等,函數對象實際上是指那些可以被傳入其他函數或是從其他函數返回的函數(比如std::for_each函數的第3個參數就要求傳入接受一個參數的函數或函數對象),是不是