備忘錄模式
引用文字設計記錄的節點,儲存記錄
2.設計記錄的儲存: vector list map set 可以使 鍊錶 圖 陣列 樹
3.操作記錄的類,記錄節點狀態,設定節點狀態,顯示節點狀態
策略模式簡單工廠模式
**:
#include #include using namespace std;
class op
};class add : public op
};class sub : public op
};class divv : public op
};class mul : public op
};class fac
}};int main(void)
方法工廠模式
**:
#include #include using namespace std;
class op
};class add : public op
};class sub : public op
};class divv : public op
};class mul : public op
};class ifac
;class addop : public ifac
};class subop : public ifac
};class divop : public ifac
};class mulop : public ifac
};int main(void)
aa;
#include #include class
aa;class singleinstance
static singleinstance *get_instance()
};singleinstance *singleinstance::instance = new singleinstance(1995);
class b:public singleinstance
;int main(void)
; girl:: girl(string s1)
girl::~ girl()
girl::girl()
class gift ;
class gg:public gift
void gift2()
private:
girl mm;
}; gg::gg(girl m)
gg::~gg()
class proxy :public gift
void gift1()
void gift2()
};int main(void)
迭代器模式
命令列模式
#include #include #include using namespace std;
class doing
void action2()
private:
};class command
virtual void do_doing() = 0;
protected:
doing* reciver;
};class action1_command:public command
void do_doing() };
class action2_command :public command
void do_doing() };
class waiter
void do_action()
protected:
command* command;
};class waiter_n
void do_action() }
private:
listcommand;
};int main(void)
責任鏈模式:#include #include using namespace std;
class request
;class manager
void setsuper(manager *p)
int classid;
manager* super;
string name;
string job;
private:
};class zhuguan:public manager
else
}private:
};class zongjian :public manager
else
}private:
};class zongjingli :public manager
private:
};int main(void)
總覽
概論演算法的特性
演算法的衡量標準
boost array 第一只boost 程式
各個vs 使用的版本不一樣
linux只能自己編譯
boost 的命名空間為boost
boost第乙個程式(array)
#include #include #include using namespace std;
int main(void)
; boost::array::iterator ib = arr.begin();
boost::array::iterator ie = arr.end();
for (;ib!=ie;ib++)
cin.get();
return 0;
}
boost 庫的學習 boost_array_bind_fun_ref
std 方式
**:
#include #include #include #include #include #include "boost/bind.hpp"
using namespace std;
using namespace boost;
class jia:public binary_function
private:
};int main(void)
boost方式#include #include #include #include #include #include "boost/bind.hpp"
using namespace std;
using namespace boost;
class jia:public binary_function
private:
};void add(int i, int j)
int main(void)
boost::function 庫
boost::ref
raii
智慧型指標 smartpointers 庫
#include using namespace std;
class a
void virtual b()
void virtual c()
private:
};class b :public a
void virtual b()
};typedef void (*pfunc) (void);
int main(void)
cin.get();
return 0;
}
CPP之中介者設計模式
1 故事 公司組織去奧林匹克公園team building,主題是 把信送給加西亞 頭天,組長組織大家秘密商討,主題時如何奪取第二天的ipad2大獎的計畫。由於人員眾多,組長怕大家不認識,要求每個人用一句話形容自己,然後順時針把剩下的所有人描述自己的話再重複出來,這樣經過2輪,名字基本記住了,雖然免...
設計模式 設計模式
物件導向程式設計 oop 的基本概念有 封裝,抽象,繼承,多型等,如何開發出可復用的物件導向軟體一直困擾著軟體開發人員。可復用的物件導向技術包括類的繼承,物件的組合和引數化型別 generic gof的巨著 設計模式 總結出可復用的物件導向的23個設計模式,並且歸類成 建立型模式,結構型模式和行為型...
cpp 編譯器的記憶體分配模式
乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 程式執行時由編譯器自動分配,存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。程式結束時由編譯器自動釋放。2 堆區 heap 在記憶體開闢另一塊儲存區域。一般由程式設計師分配釋放,若程式設計師不釋放,程式結...