原创 過載

產生背景 爲了應對峯值負荷以及一些想象不到的負載峯值,高優先級的面向用戶的服務會置備在大型集羣上。因此,大多數時間,資源沒有得到充分的利用。過載會激發暫時沒有使用的資源來最大限度的執行任務,比如背景分析,視頻/圖像處理,芯片仿真,

原创 智能指針

一直都知道智能指針是依靠引用計數的原理實現的,但是,自己一直都沒有嘗試自己實現一個簡單的指針指針,最近嘗試自己寫了一個智能指針的類,進行了簡單的測試,不知道會不會有bug,代碼如下: SmartPointer.h #include

原创 map/unordered_map原理和使用整理

結論 新版的hash_map都是unordered_map了,這裏只說unordered_map和map. 運行效率方面:unordered_map最高,而map效率較低但 提供了穩定效率和有序的序列。 佔用內存方面:map內存佔

原创 使用libcurl異步發送http請求

在工作中需要完成一個工具,該工具主要的用途就是向指定的服務器和端口發送http請求,爲了提高性能,採用多線程的方式進行,同時採用libcurl的異步形式。代碼如下,在其中添加一些註釋來記錄寫代碼中遇到的問題。 #include <stdi

原创 C++重載、重寫、重定義區別

重載(overload) 概念: 函數有同樣的名稱,但是參數列表不相同的情形,這樣的同名不同參數的函數之間,互相稱之爲重載函數。 基本條件: 函數名必須相同; 函數參數必須不相同,可以是參數類型或者參數個數不同; 函數返回值可以相同

原创 微服務中的服務發現

什麼是服務發現 在介紹服務發現之前,先來介紹一下什麼是微服務,所謂的微服務其實就是將一套軟件拆分爲多個服務,每個服務專注於一個功能點,然後將業務流程拆分爲幾個不同的服務之間的組合,從而實現高內聚低耦合的效果。 在微服務體系結構中,所謂的服

原创 Valid Anagram

Given two strings s and t, write a function to determine if t is an anagram of s. For example, s = “anagram”, t = “nag

原创 飛揚23期總結

經歷了飛揚23期,感覺收穫還是挺多的,遇到了好多優秀的人,感覺需要向他們學習,總結一下自己的收穫,可能比較亂 做事態度很重要,做每一件事都要認真仔細,認真、認真、認真 在飛揚培訓的過程中,發現好多人做每一件事都非常認真,比如:寫報告、

原创 Contains Duplicate II

Given an array of integers and an integer k, find out whether there are two distinct indices i and j in the array such

原创 C++11之繼承構造函數

問題場景 類的繼承中,如果子類想使用父類的構造函數,則需要在子類的構造函數中聲明使用父類的構造函數,例子如下: struct A { A(int i){} }; struct B:A { B(int i):A(i),d(i){

原创 博客舊址

發現自己原來的博客無論從分類還是從文章排版上都比較亂,自己又懶得去重新整理,於是,就重新申請了一個博客,以後的文章都會寫在本博客中,會有選擇性的把原來的博客內容遷移過來,希望以後能夠寫出更好的文章。 博客原址

原创 shell編寫

#判斷環境變量BLACK_LIST的字符串長度是否爲0 #設置shell變量BLACK_LIST的值爲環境變量BLACK_LIST的值 if [ -n "$BLACK_LIST" ]; then BLACK_LIST="--bl

原创 多繼承與虛繼承

多繼承 一般情況下,派生類都只有一個基類,稱爲單繼承。除此之外,C++也支持多繼承,即一個派生類可以有兩個或多個基類。 多繼承的定義 多繼承的語法如下,假設已經聲明瞭了類A、類B和類C,那麼可以這樣來聲明派生類D: class D: pu

原创 gperftools使用

近期嘗試使用gperftools對C++內存泄露進行排查,所以對gperftools進行了一些瞭解。gperftools是google用來進行程序性能優化的工具集合,主要包括tcmalloc和profiler兩個庫。其可以提供如下的功能:

原创 命名空間

命名空間的作用 命名空間是爲了防止名字衝突提供更加可控的機制。命名空間分割了全局命名空間,其中每一個命名空間是一個作用域。 命名空間的定義 命名空間由三部分組成,分別是namespace、空間名字和一系列由花括號括起來的聲明和定義。只要能