原创 c++工廠模式與new的區別

本文主要講解工廠模式比new方法的優勢。 爲什麼要用工廠模式來替代new?工廠模式相對於new方法有三個核心的好處: 1 可以讓產品類統一化入參。 #include <iostream> #include <string> usi

原创 c++11爲什麼要引入右值引用

本文適合對c++11剛入門的小夥伴閱讀。 本文加深對左值引用、右值引用、左值右值的理解。 首先要理解一下將亡值:將亡值就是在這一行結束之後該值將被析構。最典型的將亡值就是匿名對象,如:Test()。 c++11之前,有一些讓人們蛋

原创 c++單例模式模板

所有單例模類直接繼承此模板即可,線程安全,效率高(無鎖),延時構造。 #include <iostream> using namespace std; template <typename T> class Singleton

原创 c++抽象工廠方法

本文通過運用設計模式比沒用設計模式的優勢在哪? 設計模式主要是要抓住穩定部分和易變部分,文章結尾會指出。 數據庫操作爲例,以下是原有老代碼 #include <iostream> using namespace std; //數

原创 c語言單元測試,如何僞裝(mock)函數調用

本文適合對c語言有一定基礎,喜歡單元測試的小夥伴們閱讀。 本文代碼主要實現了c語言單測時mock方法。 test.h文件 #ifdef DEBUG #ifndef __TEST_H__ #define __TEST_H__ #

原创 c++模板方法

本文通過運用設計模式比沒用設計模式的優勢在哪? 設計模式主要是要抓住穩定部分和易變部分,文章結尾會指出。 非模板方法 #include <iostream> using namespace std; //以去上班爲例 //去上

原创 c++工廠方法

本文通過運用設計模式比沒用設計模式的優勢在哪? 設計模式主要是要抓住穩定部分和易變部分,文章結尾會指出。 還指出工廠方法被設計出來,最開始想要解決的問題是什麼。 #include <iostream> using namespac

原创 vim命令理解和記憶

本文適合vim編輯器愛好者閱讀。 本文包括vim大部分實用操作,加深理解和記憶的方法。 緒論 首先使用vim需要摒棄一個不好的習慣就是需要輸入大寫字母非要切換非要用CapsLk,其實shift+字母就是大寫。因爲vim中有很多的快

原创 數組和鏈表實現棧

數組和鏈表實現棧 #include <iostream> using namespace std; class Stack { public: virtual bool push(int value) = 0;

原创 數組和鏈表實現隊列

數組和鏈表實現隊列 #include <iostream> using namespace std; //抽象類 class Queue { public: virtual bool enqueue(int value)

原创 堆實現優先隊列,以及數組堆化和堆排序

#include <iostream> using namespace std; class MaxHeap { int *data; int capacity, count; bool isRoot(

原创 選擇排序,插入排序,並歸排序,快速排序

本文包括選擇排序,插入排序,並歸排序,快速排序。 #include <iostream> using namespace std; class Sort { protected: void exchange(int *a

原创 如何生成core dump文件

步驟一:設置core文件生成權限 編輯/etc/profile文件,在其中加入或修改ulimit -S -c unlimited > /dev/null2>&1。 執行source /etc/profile使剛剛編輯的文件生效。 ulim

原创 c++適配器模式

適配器模式是將兩個不同的接口,但是功能相似,適配的一種方法。甚至其中目標接口沒有實現,實現類沒有接口都是可以的。適配器模式主要強調的是接口和實現不統一,需要將兩者兼容的類。 #include <iostream> using na

原创 c++裝飾模式

本文通過運用設計模式比沒用設計模式的優勢在哪? 設計模式主要是要抓住穩定部分和易變部分,文章結尾會指出。 繼承方式新增代碼 #include <iostream> using namespace std; //吃雞遊戲有好多種槍