原创 【c++算法】《判斷一個數是否爲2的n次方》

判斷一個數是否爲2的n次方。 #include <iostream> using namespace std; bool is2N(int dest) { if (dest & (dest - 1)) //核心代碼 retu

原创 《二分查找法》——遞歸法和非遞歸法

二分查找法 使用二分查找法(折半查找)在有序數組中是經常用到的。使用此方法前提是數組有序。 遞歸法 遞歸法的二分查找法在效率上是比非遞歸低一點。 #include <iostream> using namespace std;

原创 《時間複雜度》——規則與計算

1. 分析算法時,存在幾種可能的考慮: 算法完成工作最少需要多少基本操作,即最優時間複雜度 算法完成工作最多需要多少基本操作,即最壞時間複雜度 算法完成工作平均需要多少基本操作,即平均時間複雜度 對於最優時間複雜度,其價值不大,因

原创 《TCP/IP協議》筆記——工作原理

TCP/IP協議-筆記 在講TCP/IP之前我們先來了解下網絡七層模型,以及TCP/IP和osi七層的關係。 OSI網絡七層 1.應用層:與其它計算機進行通訊的一個應用,它是對應應用程序的通信服務的。例如,一個沒有通信功能的字處理

原创 《c++類的初始化列表》——使用場景和使用方法

定義 與其他函數不同,構造函數除了有名字,參數列表和函數體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。 構造函數列表的初始化方式不是按照列表的的順序,而是按照變量聲明的順序同時初始化顯隱數據成

原创 《c/c++找出一個無序數組中第二大的數》

使用c/c++找出一個無序數組中第二大的數 下面是代碼: #include <iostream> using namespace std; int Find_second(int* p, int len) { //判空 if

原创 《c/c++中的static用法詳解》

靜態(static)局部變量 static局部變量的作用域也是在定義的函數內有效 static局部變量的生命週期和程序運行週期一樣,同時staitc局部變量的值只初始化一次,但可以賦值多次 static局部變量若未賦以初值,則由

原创 《c/c++中的const》——含義和用法

const概述 const單詞字面意思爲常數,不變的。它是c/c++中的一個關鍵字,是一個限定符,它用來限定一個變量不允許改變,它將一個對象轉換成一個常量。 const int a = 10; A = 100; //編譯錯誤,co

原创 《c/c++ 函數對象operator()——仿函數》

函數對象 重載函數調用操作符的類,其對象常稱爲函數對象(function object),即它們是行爲類似函數的對象,也叫仿函數(functor),其實就是重載“()”操作符,使得類對象可以像函數那樣調用。 注意: 1.函數對象(

原创 《TCP三次捂手、四次揮手和狀態轉換詳解》

前言: 本文將講解TCP三次捂手建立連接,到四次揮手斷開連接的過程,並且配合TCP狀態轉換圖解釋。解釋SYN 、seq 、ack、FIN的含義和關係。建議讀者先理解三捂和四揮後在結合狀態轉換圖看,網絡編程面試經常會問道這個問題,

原创 《C/C++實現十大排序法》

C/C++ 的十大排序法對比 文章將從低級到高級講解c/c++的幾種排序算法;並附上代碼和說明。 文章偏長(博主也是寫了一週才完成),不想看太多解釋的可以直接看代碼; (博主試了一下手機用戶看錶格對齊有點怪,所以建議手機用戶看圖

原创 《tars架構指南文檔》

tars架構說明文檔網址: 附上tars架構說明文檔網址一份:https://tarscloud.gitbook.io/tarsdocs/

原创 《string::assign()用法》——xstring的六個重載函數

string::assign()——六個重載函數 語法: //1.把字符串s賦給當前字符串 basic_string &assign( const basic_string &str ); //2.用 char *類型字符串s賦值

原创 《c/c++ 獲取時間戳》——精確到毫秒

timeb.h和time.h 這兩個是C++的標準頭文件,在Microsoft Visual Studio/VC98/Include中,表示了C++對時間的支持能力。 time.h中申明瞭tm結構體,來對時間年月日、時分秒的支持,

原创 《cpp服務器訪問量限制設計思路》——精確到秒級別

cpp服務器訪問量限制設計有2種思路 思路一: 使用map容器,記錄IP和count,同一個IP在限制時間內在次訪問,count++;不在同一限制時間內,重新計數。 開啓獨立線程,每隔一個限制時間clear()一次。然後計數線程