c 亂七八糟

2021-06-19 12:15:36 字數 2961 閱讀 7904

大綱

變數和基本型別;

常量;表示式,各種操作符等;

控制語句;

強制型別轉換;

異常處理;

函式;標準輸入輸出類;

類,封裝性,繼承性,多型性;

標準類;

泛型程式設計,類模板,函式模板;

標準容器類,泛型演算法;

類是什麼,類是對具有相同特性以及行為的一類物件的高度歸納,類是一種抽象資料型別;

快慢指標:多個指標,前進的步長不一樣,例如快指標每步前進兩個單位,慢指標每次前進1個單位;

使用快慢指標判斷單鏈表是否為迴圈鍊錶(快指標步長為2,慢指標步長為1);

fast=slow=head;

while (fast&&slow)   

}const_cast強制型別轉換,將const型別的的const屬性去掉;   針對指標,非指標型別不管用   ,

例如:  

有效:int  a1=0; const  int * a=&a1 ; int *b  =const_cast(a ) ;   *b=2  ; 編譯執行均無錯誤; 

編譯錯誤:  const int a=2;    int   b=const_cast(a);   

邏輯移位和算術移位 

邏輯左移和算術左移相同  ;

c語言標準中只規定了無符號數的移位為邏輯移位;

對於有符號數移位操作應不同的編譯器而不同 ,有的使用邏輯移位,有的使用算術移位;

邏輯右移移動符號位,高位補0;

算術右移不移動符號位,高位補符號位;

過載函式名不應宣告在區域性作用域,因為會遮蔽外層的過載函式;

volatile 是型別修飾符,  表示該資料經常會被無意修改, 每次讀取該資料都是從重新到記憶體中去取而不是使用備份暫存器  ;

常用於多執行緒 並行 共享變數,或者乙個子服務修改乙個指向buffer 的指標;

賦值運算子必須定義為類的成員函式,因為這樣才能實現多個不同版本賦值運算子的過載   ,如果定義為友元函式不能實現過載; 

程式設計:接收任意個整數的輸入,然後輸出  :

#include

#include

using namespace std;

int _tmain(int argc, _tchar* argv)

for(int ix=0;ix!=arrcout;++ix)

_getch();

return 0;

}lcs(求所有公共最長子序列)蠻力法

// bishi.cpp : 定義控制台應用程式的入口點。

//#include "stdafx.h"

#include

#include

#include

#include

using namespace std;

//求所有公共最長子序列演算法

//針對乙個字元,求字串中等於該字元的位置,並將位置儲存在posarray中

void getsamecharposinstr(string str,char which,int *posarray)}}

vectorlcs(string motstr,string substr,int &longestlen)

if((motstrendpos-motstrstartpos)>longestlen)

else if((motstrendpos-motstrstartpos)==longestlen)

++posarrindex;

}}    //end for

return longestsubstr;

}int _tmain(int argc, _tchar* argv)

//最長公共子串行長度,遞迴方法

int lengthstr1,lengthstr2;

string str1,str2;

int lcs(int beginpos_str1,int beginpos_str2)

int _tmain(int argc, _tchar* argv)

//動態規劃 lcs 

// 動態規劃法

// 初始化並且用子串長度填充比較陣列,初始化並且用子串長度填充方向陣列

void dynamicplanlcs(const string &str1,const string &str2,int **comparearr,int **directionarr)

else if(comparearr[i][j-1]>=comparearr[i-1][j])

else }}

//回溯方向陣列,遞迴列印最長公共子串行

void printlcs(int **directionarr,const string &str1 ,int row,int col)

else if(0==directionarr[row][col])

else if(2==directionarr[row][col]) 

printlcs(directionarr,str1,row-1,col);

}int _tmain(int argc, _tchar* argv)

/**    字串操作實現

// 字串比較實現strcmp,相等返回0,前者小於後者返回負數,前者大於後者返回整數

int strcmp(const char*str1,const char*str2)

if(str1==null || str2==null)

exit();

while(*str1==*str2)

//拼接字串 

char *mystrcat(char *pdst,const char *psrc) 

//拼接字串

char *strcat(char *pdst,const char *psrc)    

16進製制轉化為10進製數字

int ahextoi(const char* str)

return n;

}

亂七八糟的tf

my state tf.variable 0,name counter 建立乙個op變數my state,並初始化為0 one tf.constant 1 建立乙個op常量賦值為1 new value tf.add my state,one update tf.assign my state,new...

亂七八糟的命令

man ls col b ls.txt whatis du cd 前一目錄 cd 直接回家 tree makir p home dir1 dir2 dir3 head 5 etc passwd tail sudo etc init.d apache2 stop 檔案預設不能授予x許可權,預設644 ...

亂七八糟記一下亂七八糟的碎片化知識

from mdn 對於所有情況都是true,除非屬性是乙個自身的不可配置的屬性,在這種情況下,非嚴格模式返回false。在嚴格模式下,如果是屬性是乙個自己不可配置的屬性,會丟擲typeerror。檢查分支,確定分支 提交到緩衝區 git add 將緩衝區內容提交到本地倉庫 git commit m ...