原创 C++11--匿名函數(Lambda函數)

一、定義 lambda是一種匿名函數,即沒有函數名的函數。lambda函數的語法定義爲: [捕捉列表] (參數) mutable -> 返回值類型 {函數體} 二、[捕捉列表],定義能夠捕獲的函數外的變量,通俗地說捕獲就是匿名函數外所在作

原创 函數指針和成員函數指針

1、函數指針 (1)定義 int (*pFunc1)(int param1,int param2); typedef int (*TFunc)(int param1,int param2); TFunc pFunc2; (2)賦值和調用

原创 define中#、##、#@分別表示什麼

1. # 字符串化, 例如: #define  LogMessage(a)   printf("The message is: %s", #a);   LogMessage(WARNING)    //The message is:WAR

原创 C++函數模板

一、定義 (1)通過template關鍵字來聲明使用模板 (2)通過typename或者class關鍵字來定義模板類型 template<typename T1, typename T2> void Func(T1 objT1, T2 o

原创 C++類模板

一、定義 (1)類模板通常應用於數據結構方面,使得類的實現不在關注數據元素的具體類型,而只關注需要實現的功能 比如: 數組類,鏈表類,Queue類,Stack類等 (2)類模板和函數模板一樣,定義和實現必須都在頭文件中 (3)類模板中的成

原创 智能指針

一、std::auto_ptr 1、auto_ptr的構造函數接受原始指針作爲參數,雖然它是一個對象,但是重載了operator*和operator->,可以把它用在大多數普通指針可用的地方。當退出作用域時,auto_ptr對象的析構函數

原创 大小端模式和結構體中成員變量的內存分佈

一.大端模式和小端模式 計算機系統中,每個地址單元對應一個字節(8bit),一種數據類型可能佔用多個字節,如何安排這種數據類型中的每個字節,哪個字節在低地址,哪個在高地址,以及每個字節中比特序在內存中的位置,這就涉及到大小端模式。一般情況

原创 Unix下5種I/O模型

Unix下I/O模型主要分爲5種: (1)阻塞式I/O (2)非阻塞式I/O (3)I/O複用(select和poll) (4)信號驅動式I/O (5)異步I/O 1、阻塞式I/O模型 unix基本的套接字接口,例如:connect、ac

原创 網絡編程中select模型和poll模型學習(linux)

一、概述 併發的網絡編程中不管是阻塞式IO還是非阻塞式IO,都不能很好的解決同時處理多個socket的問題。操作系統提供了複用IO模型:select和poll,幫助我們解決了這個問題。這兩個函數都能夠允許進程指示內核等待多個事件中的任何一

原创 設計模式-狀態模式State(對象行爲型)

一、概述 當一個對象內在狀態改變時允許其改變行爲,這個對象看起來像改變了其類。 State爲抽象狀態角色,負責對象狀態定義,並且封裝環境角色以實現狀態切換 ConcreteState爲具體狀態角色,負責本狀態的行爲管理以及趨向狀態處理,

原创 設計模式-模板方法模式Template Method(對象行爲型)

一、概述 定義一個操作中的算法的框架,而將一些步驟延遲到子類中。使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。 AbstractClass叫做抽象模板,它的方法分爲兩類: (1)原始方法,是由子類實現的方法,並且在模板

原创 設計模式-職責鏈模式Chain Of Responsibility(對象行爲型)

一、概述 職責鏈模式使多個對象都有機會處理請求,從而避免請求的發送者和接受者之間的耦合關係。將這個對象連成一條鏈,並沿着這條鏈傳遞該請求,直到有一個對象處理它爲止。 二、類圖 Handler一方面需要定義處理請求的方法,另一方面需要定義

原创 設計模式-解釋器模式Interpreter(對象行爲型)

一、概述 解釋器模式是一種按照規定語法進行解析的方案。給定一門語言,定義它的文法的一種表示,並定義一個解釋器,該解釋器使用該表示來解釋語言中的句子。 二、類圖 AbstractExpression爲抽象解釋器 TerminalExpre

原创 設計模式-迭代器模式Interator(對象行爲型)

一、概述 迭代器模式提供一種方法順序訪問一個集合Aggregate(容器)對象中的各個元素,而又不暴露該對象的內部表示(細節)。迭代器是爲容器服務的,而能容納對象的所有類型都可以稱之爲容器。 二、類圖 1、Iterator抽象迭代器,定

原创 設計模式-備忘錄模式Memento(對象行爲型)

一、概述 在不破壞封裝性的前提下,捕獲一個對象的內部狀態,並在該對象之外保存這個狀態。這樣以後就可將該對象恢復到原先保存的狀態。 二、類圖 Originator:發起人,負責創建一個備忘錄Memento,用以記錄當前時刻它的內部狀態,並