原创 宏定義的理解

首先: c/c++ 編譯可以用gcc 連接要用g++ (gcc 不能調用c++庫鏈接) #include<iostream> using namespace std; int main(){ #ifdef DEBUG cout<<"D

原创 C++ 虛表

每個類有個有自己的虛表  每個對象有個指針__vptr指向自己類的虛表 int main()  {     B bObject;     A *p = & bObject;     p->vfunc1(); } 在調用時 用父類的指針(這

原创 c++ functor用處!!!

某些特殊場景: 函數中包含一些要賦的值  但是函數只能傳入一個參數 例如使用count_if 來得到長度大於len的字符的個數 class ShorterThan { public: explicit Short

原创 linux管道 如何理解一切皆文件

一、linux文件類型 (涉及到I/O的都可以抽象爲文件) 1.普通文件 # xxx.log 2.目錄 # /usr/ /home/ 3.字符設備文件 # /dev/tty的屬性是

原创 mqtt協議理解

1. 應用場景: 低帶寬,數據頭儘可能小。 2. 屬於應用層協議,採用TCP承載。 3. 採用 發佈-> (代理)  -> 訂閱模式(利用中間代理實現了異步通訊),發佈方發送的相當於是個廣播信息, 設置一個主題。訂閱方根據主題選擇自己訂閱

原创 go 協程控制

參考 go協程控制方式有 waitGroup, select+chan(類似epoll), context三種。     waitGroup類似於消費者模型,使用ADD() 方法指定初始產品數量,使用Done()方法消費一個物品,使用Wa

原创 source cmd

source是執行一個文件在當前shell中生效, 而用./filename或者sh filename 都是相當於額外開一個shell執行(執行結果在當前shell中不生效) 所以一般用戶配置文件生效方式會採用 source ~/.bas

原创 numpy 向量化計算IOU

def IoU(bbox, gt): """ :param bbox: (n, 4) :param gt: (m, 4) :return: (n, m) numpy 廣播機制 從後向前對齊。 維度

原创 centos nvidia驅動升級

1. yum remove nvidia-kmo 2. 參考 http://elrepo.org/tiki/tiki-index.php 添加repo url。 3. yum install kmod-nvidia-390xx( 自己選擇

原创 Verify Preorder Serialization of a Binary Tree(搭配流處理分隔字符串)

One way to serialize a binary tree is to use pre-order traversal. When we encounter a non-null node, we record the node

原创 go第三方包管理

1. 傳統方法 GOPATH       項目代碼放在gopath/src目錄下,使用go get 安裝第三方庫時會把源代碼放在src, 然後執行go install 即對src代碼build後把可執行文件放在bin目錄下。 2.  go

原创 ssl通信

必要知識: 假設通信方是甲和乙 1. 對稱加密算法加密解密用同一個祕鑰,速度快 2. 非對稱加密使用公鑰加密,私鑰解密。或者私鑰加密公鑰解密, 速度慢。 3. 公鑰在網上可以自由交換,私鑰自己保留。 4. CA是甲乙都信任的,通信方把自己

原创 ubuntu18 kubernetes配置

參考文章 centos7 kubeadm 1.配置ssr wget http://www.djangoz.com/ssr sudo mv ssr /usr/local/bin sudo chmod 766 /usr/local/bin/

原创 golang 協程通信

func finish(ch chan int){ fmt.Println("finish") ch <- 1 } func main() { // 無緩衝管道 寫入後一直阻塞到有人讀出 // 或者在沒有數據時讀取也會阻塞

原创 golang 面向對象

type Animal interface { // 這裏可以嵌入(或者說組合)別的接口 speak() big() bool } // struct 中只定義成員變量 interface 只定義方法 // 在外面定義了inte