原创 Golang-pprof

Go性能調優 在計算機性能調試領域裏,profiling 是指對應用程序的畫像,畫像就是應用程序使用 CPU 和內存的情況。 Go語言是一個對性能特別看重的語言,因此語言中自帶了 profiling 的庫,這篇文章就要講解怎麼在 gola

原创 C++ getline(cin,str), getchar(), cin ,cin.ignore() 字符串和字符讀入方式的區別

1 cin 讀入數字、字符、字符串等,讀到空格符、製表符、換行符停止讀入。 2 getline(istream &is , string &str , char delim) 讀入帶空格、製表符等字符的字符串用getline,其原型爲如下

原创 數據庫-事務

事務(Transaction)是併發控制的基本單位。所謂的事務,它是一個操作序列,由一條或者多條sql語句組成,這些操作要麼都執行,要麼都不執行,它是一個不可分割的工作單位。事務具有四個特性:(ACID特性)(1) 原子性(Atomici

原创 new和malloc的區別

malloc/free和new/delete(1) 屬性:malloc和free是C/C++的庫函數,new/delete是C++運算符;(2) 返回類型:new操作符內存分配成功時,返回的是對象類型的指針,類型嚴格與對象匹配,無須進行類

原创 2019華爲實習筆試題——重排字符串

1 字符串重排     題目:     給你一個原始字符串,根據該字符串內每個字符出現的次數,按照ASCII碼遞增順序重新調整輸出。     提示:     1、原始字符串中只會出現字母和數字。     2、注意區分大小寫。     示例

原创 交換排序(冒泡排序和快速排序)

交換排序:根據序列中兩個元素關鍵字的比較結果來對換這兩個記錄在序列中的位置。 冒泡排序的基本思想:假設待排序元素表長爲size,從前往後(或從後往前)兩兩比較相鄰元素的值,若爲逆序(即arr[j]>arr[j+1]),則交換他們,直至整個

原创 C++關鍵字static

staticstatic用來聲明靜態成員,包括靜態數據成員和靜態成員函數,它們被類的所有對象共享,實現一個類的不同對象之間的數據共享。eg:統計總數、平均數。靜態數據成員存放在靜態存儲區,sizeof(類)的內存空間大小時不包括靜態成員變

原创 topK問題——N個數中取最大的K個數

topK問題在海量數據中找出出現頻率最高的前k個數,或者從海量數據中找出最大的前k個數,這類問題通常被稱爲topK問題。N個數中取最大的K個數,用小根堆;N個數中取最小的K個數,用大根堆;時間複雜度O(NlogK)。例題1:100萬個數中

原创 數據庫-grant和revoke

SQL的數據控制功能:GRANT和REVOKE使用grant和revoke注意要點:1.可以爲不存在的數據庫授權。2.如果grant命令標識的用戶不存在,它將被創建。3.如果創建一個用戶而沒有包括identified by子句,則不需要密

原创 判斷兩個結構體是否相等(運算符重載函數)+是否能用memcmp函數判斷結構體相等

判斷兩個結構體是否相等:重載操作符"==" 運算符重載函數 (1) 類外定義的普通運算符重載函數:只能訪問類中的公有數據成員,而不能訪問類的私有數據成員; (2) 友元運算符重載函數:若友元運算符重載函數重載的是雙目運算符,則參數表中有兩

原创 struct和class的空間大小計算

struct和class的空間大小計算總體上遵循兩個原則:(1) 整體空間是佔用空間最大的成員所佔字節的整數倍;但在Linux+gcc環境下,若最大的成員類型所佔字節超過4,如double是8,則整體空間是4的倍數即可。(2) 數據對齊原

原创 堆排序和優先級隊列priority_queue

堆        堆是完全二叉樹,便於用array來儲存堆的所有節點;堆存儲在下標爲0開始計數的數組中,因此在堆中給定下標爲i的結點時:         ① 如果i=0: 結點i是根節點,沒有雙親節點;否則結點i的雙親結點爲結點(i-1)

原创 創建二叉樹(遞歸+先序遍歷)

創建二叉樹(遞歸+先序遍歷)(1) 自輸入數據元素,形參爲引用類型或二級指針class treeNode { public: int value; treeNode *left; treeNode *right; }; // 遞

原创 馬走日——最小步數

馬走日——最小步數 題目描述        一匹馬在一個8*8的棋盤上走着,它的每一步恰好走成一個日字,也就是在x、y兩個方向上,如果在一個方向走一步,另一個方向就走兩步。假設棋盤的下標左下角是(1,1),右上角是(8,8)。給你馬的最初

原创 strcpy函數實現(考慮內存摺疊)

char *my_strcpy(char *dst, const char *src, size_t cnt) { if (nullptr == dst || nullptr == src || cnt == 0) return