大綱
變數和基本型別;
常量;表示式,各種操作符等;
控制語句;
強制型別轉換;
異常處理;
函式;標準輸入輸出類;
類,封裝性,繼承性,多型性;
標準類;
泛型程式設計,類模板,函式模板;
標準容器類,泛型演算法;
類是什麼,類是對具有相同特性以及行為的一類物件的高度歸納,類是一種抽象資料型別;
快慢指標:多個指標,前進的步長不一樣,例如快指標每步前進兩個單位,慢指標每次前進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 ...