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 暗号化アルゴリズムの基本概念の分析

ブログ    
ブログ    

推薦する

2億IoTエコシステム、人民教育新聞とAI教育で協力、天猫精霊プラットフォームレイアウトが収穫期に入る

9月25日、アリババ人工知能研究所は雲啓カンファレンスで、Tmall Genieは現在660以上のI...

...

...

一般的な顔認識システムの端末設置と配線の包括的なレビュー

顔認識端末は人事管理や出勤簿、人通りの多いセキュリティチェックポイントなどで広く利用されている。今年...

ビッグモデルにハリー・ポッターを忘れさせよう、マイクロソフトの新しい研究はラマ2の記憶消去を演出、本当に魔法を使って魔法を倒す(doge)

マイクロソフトの最近の研究により、ラマ2号は選択的健忘症にかかり、ハリー・ポッターに関するすべてのこ...

「あなたのことを理解します」に向けて:ロボットは「他人の視点から考える」ことができる

「あなたはロボットですか?なぜ私の立場になって考えられないのですか?」人々が争いを抱えるたびに、この...

AIスタートアップが大手テクノロジー企業になるために開発すべき10の戦略

大手テクノロジー企業の開発経験からインスピレーションを得る人はたくさんいます。Amazon、Face...

AIヒーロー | フェイフェイ・リーのGoogle退社秘話

スタンフォード大学人工知能研究所の公式ツイッターによると、11月20日、フェイフェイ・リー氏がスタン...

...

AIが「テクノロジー冬季オリンピック」を支援、UBTECHロボティクスが氷と雪の世界に進出

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

ヘルスケアにおける人工知能

[[433316]] AI の恩恵を受けるすべての業界の中で、ヘルスケアはおそらく最も重要かつ関連性...

自動運転制御プロセスにおいて解決すべき規制上の問題は何ですか?

自動運転車は自動車の知能化の究極の目標であると広く考えられていますが、自動車技術のさまざまな段階の発...

...

ディープラーニングに基づく画像マッチング技術の概要

画像マッチング応用:ターゲット認識、ターゲット追跡、超解像度画像再構成、視覚ナビゲーション、画像ステ...