原创 lambda在C++中的應用

lambda出現的原因是有時候使用簡單的函數時如果定義一個相應的函數進行調用會顯得比較麻煩,既要函數定義也需要函數聲明(如果需要的話),這樣對於簡單函數的代碼量太大,這個時候就可以使用lambda,它定義了一個匿名的函數,只調用一次。

原创 struct相關

1.在C++中struct結構體內有指針怎麼辦 typedef struct stud{int *a; }; int _tmain(int argc, _TCHAR* argv[]) {stud *str1 = new stud;int

原创 static-cast dynamic_cast const_cast reinterpret_cast

static_cast:   一般的轉換(no run-time check)通常,如果你不知道該用哪個,就用這個。    dynamic_cast:   通常在基類和派生類之間轉換時使用 const_cast:   主要針對const和

原创 argc and argv

argc 是指命令行輸入參數的個數,argv存儲了所有的命令行參數。假如你的程序是a.exe,在命令行運行該程序a.exe xxx yyy,其中argc爲3,argv[0]爲a.exe,argv[1]爲xxx,argv[2]爲yyy。 a

原创 迪傑斯特拉算法與弗洛伊德算法

// mydjstl.cpp : 定義控制檯應用程序的入口點。 // #include "stdafx.h" #include <iostream> using namespace std; #pragma comment(lin

原创 socket版本協商

WORD wVersionRequested; WSADATA wsaData;int err;wVersionRequested = MAKEWORD( 2, 2 );err = WSAStartup(

原创 TCP協議隨筆

1.IP數據包頭中total lenghth指的是IP協議包頭及以後的數據字節數,如果加上MAC協議的話需要加上14; 2.TCP將用戶數據打包爲報文段,發送數據後啓動定時器,超過定時器沒有收到響應報文進行數據包的重發,接收端對收到的數

原创 C++學習隨筆

1.引用必須在聲明時初始化,並且初始化後不能改變其值,類似於是一個指針常量,而指針可以先聲明再初始化,並且指針指向的值可以隨時改變。 2.如果帶參數列表的函數,必須從右向左添加默認值,也就是說如果函數參數列表中某一個參數設置爲默認值,那麼

原创 Qt下Link2019,Link2001錯誤的解決

main.obj:-1: error: LNK2019: 無法解析的外部符號 "__declspec(dllimport) public: __thiscall QSqlDatabase::~QSqlDatabase(void)" (__

原创 ASCII ANSI Unicode UTF-8 UTF-16 GBK解釋

ANSII是8位進行表示,只可以表示英文字母,數字與符號,使用前127位,第一位規定爲0,。 ANSI編碼是因爲非英語國家需要在計算機上顯示自己的文字,比如中國的中文使用ASCII碼中多餘的128位不能表示所有的漢字,所以進行擴展,使用2

原创 #define相關

#include "stdafx.h" #include <iostream> using namespace std; #define STR(s)  #s   //#把宏參數變爲一個字符串 #defi

原创 NS-3實現MPTCP的輪詢調度算法

NS-3下默認的數據調度算法是Round_Robin算法,但是在Linux的內核中默認的調度算法是最小RTT(Min_RTT),同時在ns-3下默認的子流窗口大小爲1,但是在Linux內核中默認的子流窗口數目是10。 ns-3下輪詢算法或

原创 驅動器相關的操作

   首先來說明3個函數: (1)查看系統中驅動器,函數原型DWORD GetLogicalDrives(VOID)   //這個函數可以查看驅動器的個數,返回的是一個DWORD類型的數據,每一位代表相應的驅動盤是否存在,比如返回的

原创 VS2010添加庫文件(include,lib等)的操作

在VS2010中添加公用的頭文件,lib文件,如pcap.h,ws_32.lib等文件,這樣的文件一般放在include文件夾或lib文件夾中,添加方法如下: 1.添加的文件只對本程序有關:      項目--屬性--配置屬性--VC++