C++ kmp アルゴリズム テンプレート コード解釈

C++ kmp アルゴリズム テンプレート コード解釈

C++ プログラミング言語でのテンプレートの適用は、比較的複雑な適用技術です。今日は、C++ kmp アルゴリズム テンプレートの基本的な適用から学習して、この知識の理解を深め、将来の適用を容易にし、プログラミングの効率を向上させます。

使用時に次の2行のコードを追加するだけです

  1. #include <  ベクター>    
  2. 名前空間 std を使用します。

C++ kmp アルゴリズム テンプレート パラメータの説明#t#

const T *一致するソース文字列

TL sourceLen 一致させる文字列の長さ

const T *パターン パターン文字列

TLパターン文字列の長さ

C++ kmp アルゴリズム テンプレート コード例:

  1. テンプレート<  クラスT、クラス TL >    
  2. インライン int kmpmatch(const T *source,TL sourceLen,
    const T *パターン、TL パターン長さ)
  3. {
  4. ベクトル<   int >次;
  5. ( int i = 0 ; i <   パターン長さ; i++)
  6. 次へ.push_back(0);
  7. 次[0] = -1;
  8. for( int i = 1 ; i <   パターン長さ; i++)
  9. {
  10. int j =次の[i - 1];
  11. while ( (パターン[i] != パターン[i + 1])&& (j > = 0))
  12. {
  13. j =[j];
  14. }
  15. (パターン[i] == パターン[j + 1])の場合
  16. {
  17. 次[i] = j + 1;
  18. }
  19. それ以外
  20. {
  21. 次[i] = -1;
  22. }
  23. }
  24. 整数i = 0 ;
  25. 整数j = 0 ;
  26. 一方、(( i <   ソース長さ) && ( j <   パターン長さ))
  27. {
  28. if ( ソース[i] == パターン[j] )
  29. {
  30. 私は++;
  31. j++;
  32. }
  33. それ以外の場合 ( j == 0 )
  34. {
  35. 私は++;
  36. }
  37. それ以外
  38. {
  39. j =次の[j - 1 ] + 1;
  40. }
  41. }
  42. (j > = パターン長)の場合
  43. {
  44. if ( !next.empty() )
  45. 次へ.clear();
  46. i - パターン長を返します。
  47. }
  48. それ以外
  49. {
  50. if ( !next.empty() )
  51. 次へ.clear();
  52. -1 を返します。
  53. }
  54. }

上記は、C++ kmp アルゴリズム テンプレートの紹介です。

<<:  Microsoft IE8 の「ランダム ブラウザ選択」アルゴリズムはランダムではなく、不利な状況に陥っています。

>>:  VB.NET 暗号化アルゴリズムの基本概念の分析

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

人工知能の急速な発展により、多くの人が失業し、自立できなくなるのでしょうか?

近年、人工知能が話題となっており、人工知能が人類にもたらす変化について多くの人が議論しています。多く...

「緊急天使」がロボットを救出するために前進し、事態を収拾した

科学技術の進歩と社会の発展に伴い、ロボット産業は繁栄の時代を迎えています。ロボット工学は、コンピュー...

ビッグデータと人工知能 - 機械的思考から統計的思考へ

今日は、ビッグデータ、人工知能、認知問題の解決の関係ロジックについて話す記事を書こうと思います。した...

マイクロソフトがAIインフラサービスコード名「Singularity」を発表

Microsoft Azure と研究チームは協力して、コードネーム「Singularity」という...

人工知能が病理画像から癌遺伝子変異を予測できる!

過去2年間、人工知能(AI)はあらゆる分野の注目を集めるようになりました。囲碁や自動運転車でその威力...

...

Meta主任AI研究者ヤン・リクン氏:今日のAIは愚かであり、規制当局は我々に干渉すべきではない

ソーシャルメディアFacebookの親会社Metaの主任人工知能研究者ヤン・ルカン氏は10月20日、...

高性能 LLM 推論フレームワークの設計と実装

1. 大規模言語モデル推論の概要従来の CNN モデル推論とは異なり、大規模言語モデルの推論は通常、...

業界大手がIoTとAIを成功裏に導入するための3つのステップ

変化は避けられませんが、人間はそれに抵抗する傾向があります。エリザベス1世女王は、編み機の発明によっ...

ハーバード大学とMITが協力し、新型コロナウイルスに遭遇すると自動的に光るスマートマスクを開発

[[326611]] 「新型コロナウイルスにさらされると、マスクが自動的に点灯し、検査員に警告を発し...

ディープラーニングのトレーニング中に GPU の温度が高すぎますか?すぐにクールダウンするには、以下の数行のコマンドを入力してください

[[197022]]新しく購入した水冷なしのパブリック版GPUの温度は、フル負荷で稼働すると室温から...

自動運転タクシーが登場!

[[383103]]武漢晩報(王超然記者)自動運転タクシーに乗ってみての感想は?車の中に運転手はい...

...

機械学習はデータに依存する

[[186928]]ビッグデータ、分析、モノのインターネット、クラウドテクノロジー...近年、これら...

...