原创 c++ 實現Sring類

深拷貝實現string類#define _CRT_SECURE_NO_WARNING 1 #include<iostream> #include<string> using namespace std; class String { pub

原创 利用運算符重載實現Date類

運算符重載:重載,就是重新賦予新的含義。運算符重載的方法是定義一個重載運算符的函數,使指定的運算符不僅能實現原有的,而且能實現在函數中指定的新的功能。在使用被重載的運算符時,系統會自動調用該函數,以實現相應的功能。即運算符重載實質是函數的重

原创 模擬實現智能指針auto_ptr,scoped_ptr,shared_ptr

智能指針,顧名思義它是一個聰明的指針,那麼到底聰明到哪了呢,讓我們一起來看以下的代碼。void test1()   //內存泄露 {     int *p = new int(1);     if (1)     {         //.

原创 鏈表的表示及實現

      鏈接存儲結構的線性表,它用一組地址任意的存儲單元存放線性表中的數據元素,邏輯上相鄰的元素在物理上不要求也相鄰,不能隨機存取。一般用結點描述:結點(表示數據元素) =數據域(數據元素的映象) + 指針域(指示後繼元素存儲位置)。鏈

原创 進程控制塊PCB結構 task_struct 描述

注:本分類下文章大多整理自《深入分析linux內核源代碼》一書,另有參考其他一些資料如 《linux內核完全剖析》、《linux c 編程一站式學習》等,只是爲了更好地理清系統編程和網絡編程中的一些概念性問題,並沒有深入地閱讀分析源碼,我

原创 進程調度算法

一、進程調度的任務(1)保存處理機的現場信息。在進行調度時首先要保存當前的處理機的現場信息。(2)按某種算法選取進程。調度程序按某種算法選取進程,將其狀態改爲運行狀態,並準備把處理機分配給它。(3)把處理機分配給進程。由分派程序把處理機分派

原创 堆的實現

堆結構的二叉樹存儲是最大堆:每個父節點的都大於孩子節點。最小堆:每個父節點的都小於孩子節點。孩子節點下面,我們以小堆爲例,實現堆的建立:代碼如下:#pragma once #include<iostream> #include<vector

原创 Linux信號機制與信號處理

信號(signal)是Linux進程間通信的一種機制,全稱爲軟中斷信號,也被稱爲軟中斷。信號本質上是在軟件層次上對硬件中斷機制的一種模擬。與其他進程間通信方式(例如管道、共享內存等)相比,信號所能傳遞的信息比較粗糙,只是一個整數。但正是由於

原创 I/O多路轉接之select

I/O多路轉接之select(只負責等)系統提供select函數來實現多路複用輸入/輸出模型。傳向select的參數告訴內核:1)我們所關心的文件描述符。參數nfds是需要監視的最大的文件描述符值+1; 2)對每個描述符,我們所關心的狀態。

原创 代理服務器工作原理

(1) 代理服務原理 代理服務器有很多種,大體來說有http,ftp,socks代理三種,其中又分透明代理和不透明代理。其中透明代理一般是網關,是硬件。所以這裏討論不透明代理。 當機器通過代理服務器上網時。通訊是分兩次的,先是機器和代理服務

原创 epoll的高效實現原理

epoll的高效實現原理原文地址:http://blog.chinaunix.net/uid-17299695-id-3059110.html開發高性能網絡程序時,windows開發者們言必稱iocp,linux開發者們則言必稱epoll。

原创 判斷一棵樹是否爲完全二叉樹

       完全二叉樹:若一棵二叉樹具有具有n個節點,它的每個節點都與高度爲k的滿二叉樹編號爲0~n-1結點一一對應,則稱這可二叉樹爲完全二叉樹。方法一:一維數組存儲 根據完全二叉樹的定義和性質,利用一位數組作爲完全二叉樹的存儲,如下圖由

原创 線程安全和可重入函數的區別與聯繫

線程安全:    一般來說,一個函數被稱爲線程安全的,當且僅當被多個併發線程反覆調用時,它會一直產生正確的結果。就是多線程訪問時,採用了加鎖機制,當一個線程訪問該類的某個數據時,進行保護,其他線程不能進行訪問直到該線程讀取完,其他線程纔可使

原创 select、poll、epoll之間的區別總結

select、poll、epoll之間的區別總結[整理]   select,poll,epoll都是IO多路複用的機制。I/O多路複用就通過一種機制,可以監視多個描述符,一旦某個描述符就緒(一般是讀就緒或者寫就緒),能夠通知程序進行相應

原创 逆波蘭表達式(後綴表達式)

     逆波蘭表達式,它的語法規定,表達式必須以逆波蘭表達式的方式給出。逆波蘭表達式又叫做後綴表達式。下面是一些例子:正常的表達式 逆波蘭表達式a+b ---> a,b,+a+(b-c) ---> a,b,c,-,+a+(b-c)*d -