原创 重寫String類

主要是4個默認函數的重寫: 代碼: #include <iostream> using namespace std; class Cstring{ private : char * data; public : Cstring(c

原创 模板元的簡單學習

特別值得注意的是,因爲C++的模板語言是在編譯器編譯的時候完成的,所以又稱爲靜態語言,通常的C++語言又稱爲動態語言或者運行時語言。正是因爲模板語言是在編譯期完成的,所以我們可以藉助於這種編譯期的計算實現代碼自動生成的目的,從而實現C++

原创 平衡二叉樹轉化爲雙向鏈表

 很容易想到遞歸,實現確實不是太容易,對本人來說。 平衡二叉樹是有序的,要求鏈表也是有序。 \ 代碼: #include<iostream> //平衡二叉樹轉化爲雙向鏈表 using namespace std; typedef

原创 sizeof 和類繼承 虛繼承 求類大小

代碼: #include <iostream> using namespace std; /* class a{ float k; // 4字節 virtual void foo(){} //有一個4字節的指針指向自己的虛函數表

原创 java 多線程拉數據

需求介紹 有近2w 商品,獲取到全部商品詳細信息, 存在2 個接口, 一個是分頁獲取商品列表 一個是根據列表頁包含的商品編號,獲取商品系那個IQ哪個 採用多線程線程池方式獲取商品詳情 import java.sql.Time; impo

原创 linux 最長用命令集錦

date 使用場景,shell 編程中給文件命名 使用date 爲變量賦值 $() 是將命令結果輸出  ; $(()) 則是進行算數運算 cut用來截取字符竄神兵利器,缺陷(如果文件裏面的某些域是由若干個空格來間隔的,那麼用cut就有

原创 String、StringBuilder、StringBuilder

可變性 簡單的來說:String 類中使用 final 關鍵字修飾字符數組來保存字符串,private final char value[],所以 String 對象是不可變的。而StringBuilder 與 StringBuffer

原创 java 對象創建過程

JVM中對象的創建過程 1. 拿到內存創建指令 當虛擬機遇到內存創建的指令的時候(new 類名),來到了方法區,找 根據new的參數在常量池中定位一個類的符號引用。 2. 檢查符號引用 檢查該符號引用有沒有被加載、解析和初始化過,如果沒有

原创 包含最小元素的棧

題目:設計包含min函數的棧。定義棧的數據結構,要求添加一個min函數,能夠得到棧的最小元素。要求函數min、push以及pop的時間複雜度都是O(1)。 文件分佈: 頭文件和main文件 頭文件:代碼 #include <stack>

原创 二叉樹和爲某值

很容易想到用先序遍歷,並傳遞進去一個數組和當前和。just so so 代碼: #include <iostream> #include <vector> #include <assert.h> using namespace std;

原创 棧的壓入彈出序列

輸入兩個整數序列,第一個序列表示棧的壓入順序,請判斷第二個序列是否爲該棧的彈出順序。假設壓入棧的所有數字均不相等。 代碼: #include <iostream> #include <stack> #include <assert.h>

原创 不能被繼承的類

方法一:通過私有化構造函數 代碼: #include <iostream> using namespace std; //只能在堆上進行創建 class sealedClass{ private : sealedClass(){}

原创 旋轉數組的最小數字

題目:把一個數組最開始的若干個元素搬到數組的末尾,我們稱之爲數組的旋轉。輸入一個遞增的排序的數組的一個旋轉,輸出旋轉數組的最小元素。例如輸入{1,2,3,4,5}的一個旋轉爲{3,4,5,1,2},該數組的最小值爲1。 可以使用從頭

原创 兩種方法求單鏈表逆序

1 遞歸,很簡單 代碼: #include<iostream> using namespace std; typedef struct node{ int data; struct node * pNext; }Node

原创 二叉樹的後續遍歷序列

代碼: #include <iostream> #include <vector> #include <assert.h> using namespace std; bool verifyBst(int data[],int len