成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C++ kmp算法模板代碼解讀

開發 后端 算法
我們在這篇文章中主要為大家詳細介紹了C++ kmp算法模板的相關應用方法,希望大家可以從這段代碼中學到更多的應用技巧。

C++編程語言中的模板應用是一個比較復雜的應用技術,我們今天就先從C++ kmp算法模板的基本應用開始學習,從而加深我們對這方面知識的認識程度,方便將來的應用,提高編程效率。

在使用的時候加上這兩行代碼就行了

  1. #include < vector>   
  2. using namespace std; 

 

C++ kmp算法模板參數說明 #t#

const T *source 待匹配的字符串

TL sourceLen 待匹配字符串的長度

const T *pattern 模式串

TL 模式串長度

C++ kmp算法模板代碼示例:

 

  1. template < class T,class TL>   
  2. inline int kmpmatch(const T *source,TL sourceLen,
    const T *pattern,TL patternLen)   
  3. {   
  4. vector< int> next;   
  5. for ( int i = 0; i <  patternLen ; i ++ )   
  6. next.push_back(0);   
  7. next[0] = -1;   
  8. for( int i = 1 ; i <  patternLen ; i ++ )   
  9. {   
  10. int j = next[i - 1];   
  11. while ( (pattern[i] != pattern[i + 1])&& (j >= 0))   
  12. {   
  13. j = next[j];   
  14. }   
  15. if ( pattern[i] == pattern[j + 1])   
  16. {   
  17. next[i] = j + 1;   
  18. }   
  19. else   
  20. {   
  21. next[i] = -1;   
  22. }   
  23. }   
  24. int i = 0;   
  25. int j = 0;   
  26. while (( i <  sourceLen ) && ( j <  patternLen ))   
  27. {   
  28. if ( source[i] == pattern[j] )   
  29. {   
  30. i ++;   
  31. j ++;   
  32. }   
  33. else if ( j == 0 )   
  34. {   
  35. i ++;   
  36. }   
  37. else   
  38. {   
  39. j = next[j - 1 ] + 1;   
  40. }   
  41. }   
  42. if ( j >= patternLen )   
  43. {   
  44. if ( !next.empty() )   
  45. next.clear();   
  46. return i - patternLen ;   
  47. }   
  48. else   
  49. {   
  50. if ( !next.empty() )   
  51. next.clear();   
  52. return -1;   
  53. }   

 

以上就是對C++ kmp算法模板的相關介紹。

責任編輯:曹凱 來源: 博客園
相關推薦

2010-02-05 17:58:32

C++鏈棧模板

2010-02-03 15:58:51

C++ timer

2010-02-04 09:33:08

C++指針重載

2023-12-06 13:48:00

C++代碼

2010-02-04 16:07:39

C++回調函數

2010-02-06 09:46:46

C++單向鏈表

2010-02-04 13:45:36

C++類模板

2010-01-21 14:07:14

CC++聲明

2010-02-02 17:27:16

C++連接MySqL數

2010-02-01 14:26:50

C++讀寫文本文件

2023-12-18 11:15:03

2010-02-01 11:22:09

C++虛函數

2010-02-05 16:46:58

C++ TinyXml

2023-12-13 10:51:49

C++函數模板編程

2010-02-05 11:23:01

C++聲明語法

2010-01-28 14:04:35

C++鏈表

2010-02-03 17:42:33

C++模板參數

2010-02-02 17:39:31

C++構造函數

2023-10-30 10:29:50

C++最小二乘法

2010-01-21 09:11:38

C++編譯器
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 丝袜美腿一区二区三区 | 区一区二在线观看 | 国产成人精品一区二区三区在线 | 免费黄色录像视频 | 亚洲视频二区 | 91看片网| 成人毛片在线视频 | 亚洲福利一区 | 美女拍拍拍网站 | 欧美日韩亚洲成人 | 亚洲精品一二三区 | 久草99| 日韩一区和二区 | 无毛av| www.日韩高清 | 成人性生交大片免费看中文带字幕 | 日韩在线精品视频 | 夜夜爽99久久国产综合精品女不卡 | www.av7788.com | 国产一区二区在线视频 | 91影院| 国产精品资源在线 | 日本精品一区二区三区视频 | 成人午夜视频在线观看 | 欧美一区二区在线观看视频 | 中文字幕不卡在线观看 | 国产91色在线 | 亚洲 | 福利精品 | 欧美精品一区二区三区在线播放 | 欧美在线视频网 | 一级黄色录像片子 | 久久亚洲天堂 | 视频一区在线 | 伊人久久在线 | 亚洲第一在线 | 久久精品国产一区老色匹 | 欧美一区二区三区在线免费观看 | 狠狠干2020 | 日韩精品一区二区三区在线播放 | 在线观看中文字幕 | 国产男女视频网站 |